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