在数据类型为datetime的SQL数据库中,没有时间存储日期

时间:2011-06-21 12:42:51

标签: sql-server-2005

  

可能重复:
  Storing the date Only in SQL Server 2005

我正在使用SQL Server 2005数据库。当我存储日期时,只有datetime作为日期的数据类型,所以每当我从日期中删除时间并将其存储在数据库中时它需要默认时间,但我想将其存储为仅日期而不是时间

3 个答案:

答案 0 :(得分:3)

升级到具有日期数据类型的SQL Server 2008。否则只是让它在午夜时间放入,并在查询时忽略它。您不想做的一件事是将其存储为varchar或nvarchar。

答案 1 :(得分:1)

您必须将值存储为日期时间,然后忽略时间部分。

您可以按照此blog post中的说明创建用户定义的类型,但这似乎比它的价值更麻烦。

答案 2 :(得分:1)

只需使用int而不是Datetime,或者,您可以创建自己的数据类型

CREATE TYPE [dbo].[MyDateType] FROM [int]

只需将日期转换为此数据类型

Declare @Dt Datetime Set @dt = '11 June 2011 08:00'
Declare @MyDt int 
Set @MyDt = Cast(@dt as int)
Select Cast (@MyDt as DateTime)

或使用自定义数据类型...

Declare @Dt Datetime Set @dt = '11 June 2011 08:00'
Declare @MyDt MyDateType
Set @MyDt = Cast(@dt as MyDateType)
Select Cast (@MyDt as DateTime)