Sql Datetime only时间由用户硬编码
先生,在我的数据库表中,在某些地方,我使用的是datetime数据类型,在那个地方,我只需要显式设置特定的时间,因此在那个时候,由于datetime变量,它会采用默认的日期值,并将其附加到用户定义的时间中。请给出任何答案Sql Datetime only时间由用户硬编码,sql,sql-server,sql-server-2008,datetime,Sql,Sql Server,Sql Server 2008,Datetime,先生,在我的数据库表中,在某些地方,我使用的是datetime数据类型,在那个地方,我只需要显式设置特定的时间,因此在那个时候,由于datetime变量,它会采用默认的日期值,并将其附加到用户定义的时间中。请给出任何答案 declare @u as datetime set @u=cast('6:00PM' As DATETIME) select @u 现在我不想要默认日期1900-01-01 18:00:00.000,这里的默认日期是1900-01-01 我需要像18:00:00.000这样
declare @u as datetime
set @u=cast('6:00PM' As DATETIME)
select @u
现在我不想要默认日期1900-01-01 18:00:00.000,这里的默认日期是1900-01-01
我需要像18:00:00.000这样的输出使用
[TIMEDIFF()][1]
declare @u as datetime
set @u=cast('6:00PM' As DATETIME)
select convert(varchar(12), @u, 114)
SELECT TIMEDIFF('1900:01:01 18:00:00.100','1900:01:01 00:00:00.000');
Result:
18:00:00.100000
您使用的是什么数据库和版本?是什么版本的SQL Server?如果您使用的是SQL Server 2008,则可以使用新的数据类型。@shahkalpesh我使用的是SQL Server 2008,但如果您只想记录时间,我不想使用时间数据类型;但是不想使用
时间
数据类型,并且日期时间
的默认日期也无效,您希望日期时间
类型的日期部分是什么?ps。如果要避免时间
,以实现向后兼容性,看看SQL 2005解决方案:先生,现在当我试图再次将其分配给@s变量时,您检查了这段代码,它显示默认日期声明@u为datetime,@s为datetime set@u=cast('6:00PM'为datetime)set@s=convert(varchar(12),@u,114)print@s@Utsav-是的。这是意料之中的。datetime变量将始终具有日期部分和时间部分。如果只需要时间部分,则需要使用数据类型varchar
或time
。