1

我们的应用程序使用SQL SERVER 2005

我只需要在 GridView中显示来自 DateTime 的 DATE 。

我不想其转换为任何其他格式之类的Varchar东西。它应该只是DateTime格式本身,没有Time

请帮忙。

4

4 回答 4

7

在 SQL Server 中,代码是

CAST(datediff(d,0,datetimecol) as datetime)

但是,我怀疑这对 GridView 有什么好处,它会推断它是一个“日期时间”列并显示“日期+时间”格式,即使时间都是“00:00:00”。

于 2013-04-02T10:38:24.787 回答
2

如下所示在 Grid 中绑定 DateField 列,然后它可以工作...

<asp:BoundField DataField="Your_Date_Column" 
                    HeaderText="Date_Column" 
                    DataFormatString="{0:d}" />

DataFormatString="{0:d}"它显示日期3/11/2013

于 2013-04-02T10:12:25.507 回答
2

在 SQL 2005 中,如果没有时间(时间是 datetime 类型的一部分),则无法将其保持为 datetime 格式,您可以获得的最佳结果是:

2013-04-02 00:00:00.000

如果您愿意转换为 VARCHAR,则可以使用类似于:

SELECT CONVERT(VARCHAR(10),GETDATE(),111)

它将根据需要显示日期部分。否则,您需要迁移到 SQL 2008+,在该版本中可以使用适当的日期类型。

如果您需要坚持使用 SQL 2005,实现此目的的最佳方法是在数据网格视图本身中对其进行格式化。

于 2013-04-02T10:49:21.463 回答
0

如果您想截断日期时间以使其仅返回午夜的日期,请参阅此问题的已接受答案-该问题专门与 SQLServer 2008 相关,但答案包括有关如何在 SQLServer 2005 中实现此目的的详细信息。

如果您想将日期时间字段转换为仅日期字段 - 您无法在 SQLServer 2005 中单独使用 SQL 实现此目的,因为没有仅日期数据类型 - 请参见此处

于 2013-04-02T10:50:11.293 回答