【发布时间】:2018-03-28 08:37:49
【问题描述】:
我的 aspx 页面中有一个 Gridview,它显示来自我的数据库的名称和日期以及一些用于从数据库中搜索数据的文本框。
保存在我的数据库中的日期格式是 yyyy-MM-dd 但我想在 MM/dd/yyyy 的 Gridview 上显示它,所以我用过
SELECT ID, Name, convert(varchar(10), StartDate, 101) as [StartDate] FROM MyDB
实现它。现在不是显示 2016-12-13,而是显示在我的 gridview 上,如下所示:12/13/2016
现在我的问题是,当我使用文本框使用日期过滤 Gridview 时,键入的日期格式应为 yyyy-MM-dd 以便显示结果。这就是为什么我正在考虑将在文本框中输入的 MM/dd/yyyy 转换为 yyyy-MM-dd。
所以当我输入 12/13/2016 时,它将被转换为 2016-12-13 然后将其添加到我的 SQLCommand 中。
编辑
我忘了说我转换日期的原因。那是因为即使保存在数据库中的数据只是日期,它也会在 Gridview 中显示时间。所以没有转换,它看起来像这样:5/12/2016 12:00:00 AM
【问题讨论】:
-
您的数据库中的
StartDate列是什么类型? -
如果您从数据库中检索作为 DateTime 的值并显示它,它将自动调整为您所在的当前选择的语言环境。此外,如果您从模型中获得有效的 DateTime,则在使用 Entity Framework 或 SqlCommand AddParameter 时无需担心。所以我建议采用“日期时间”方式——因为每个不同的网络本地显示都可能导致问题。
-
我认为获取日期时间会更好,因为它存储在数据库中,并且只在显示时进行转换。这样您就可以灵活地代表。
-
@PauGacusan 阅读了副本。和GridView Examples for ASP.NET 2.0: Formatting the GridView。如果您需要有关格式化 gridview 列的帮助,请发布您的代码。您是否设置列的格式字符串?您可以使用短格式,例如
d指定在最终用户的区域设置中仅显示日期 -
@PauGacusan 请也试试这个:text=''