我正在GridView
从一个DataTable
. 我想只显示日期时间字段的日期部分。
我用过 :
CONVERT(VARCHAR(10),MyDatetime,103) AS 'DateOnly'
这显示得很好,但排序“不正确”(它被视为字符串而不是日期)我想避免的简单解决方案是
CONVERT(VARCHAR(10),MyDatetime,102) AS 'DateOnly'
即首先有年份,这将正确排序,但不太正确。
我也试过:
CONVERT(date,MyDatetime,103) AS 'DateOnly' and
DATEADD(D, 0, DATEDIFF(D, 0, MyDatetime)) AS 'DateOnly'
GridView
这些在 sql server 中看起来不错,但是在日期之后的 00:00:00 时间添加时呈现。- 从好的方面来说,排序工作正常。
中的列DataTable
可以变化,因此这些列是在运行时生成的,我不能使用任何涉及像这样编辑字段的解决方案:
<asp:BoundField DataField="DataFieldName" DataFormatString="{0:d}"></asp:BoundField>
我觉得我快到了,但我就是找不到拼图的最后一块。