GETDATE()始终返回12:00:00 AM

时间:2013-01-12 22:40:31

标签: c# asp.net sql-server-2008

在我的ASP.NET(C#)项目中,我将一些数据插入数据库。

INSERT INTO USERS (username,join_date) VALUES('Ali',GETDATE());

现在,当我从数据库中提取日期时,我正在使用 DateTime

SqlDataReader r = Command.ExecuteReader();
r.Read();
myDate = r.getDateTime(0);

当我在某些DIV中插入它时,我会这样做。

"<div>"+myDate.ToLongTimeString()+"</div>"

我在日/月/年中获得正确的日期,但小时始终凌晨00:00:00

我怎样才能得到准确的时间?

2 个答案:

答案 0 :(得分:7)

确保join_date的类型为DATETIME,而不是数据库中的DATE

http://msdn.microsoft.com/en-us/library/ms186724.aspx

答案 1 :(得分:4)

使用DATE作为列类型意味着您只存储日期而不是时间。

因此,当您将值读回DateTime对象时,系统必须初始化时间部分 - 到午夜。

将列转换为DATETIME,您也可以存储时间组件。

有关差异的详细信息,请参阅Date and Time Data Types and Functions

上的MSDN页面