Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 sql server 2008中将文本转换为时间时出现问题?_Sql Server 2008 - Fatal编程技术网

Sql server 2008 sql server 2008中将文本转换为时间时出现问题?

Sql server 2008 sql server 2008中将文本转换为时间时出现问题?,sql-server-2008,Sql Server 2008,我把这个Ttime作为nvarchar(10):“09:52:48”和TmpTime作为日期 我试着这样转换:“updatemensettmptime=convert(DATETIME,Ttime,108)” 我进入了这个时间:“1900-01-01” 为什么? 提前感谢您有一个定义为“日期”的列,然后只向其中发送时间值 日期部分默认为零,在SQL中为1900年1月1日(在转换中)。然后忽略日期列的时间 你预计会发生什么 (无论是否使用CONVERT,都会发生同样的情况,因为列是“date”)如

我把这个Ttime作为nvarchar(10):“09:52:48”和TmpTime作为日期

我试着这样转换:“updatemensettmptime=convert(DATETIME,Ttime,108)”

我进入了这个时间:“1900-01-01”

为什么?


提前感谢

您有一个定义为“日期”的列,然后只向其中发送时间值

日期部分默认为零,在SQL中为1900年1月1日(在转换中)。然后忽略日期列的时间

你预计会发生什么


(无论是否使用CONVERT,都会发生同样的情况,因为列是“date”)

如果您还有一个日期字段,您应该在转换之前将它们连接起来:

CREATE TABLE #Sample ( DateField varchar(10), TimeField varchar(10) );
GO

INSERT INTO  #Sample VALUES ('2009-01-24', '09:52:48');
SELECT CONVERT(DATETIME, DateField + ' ' + TimeField) as Converted FROM #Sample
您将得到:

Converted ----------------------- 2009-01-24 09:52:48.000 转换 ----------------------- 2009-01-24 09:52:48.000
我尝试将文本转换为日期我需要在日期字段中输入文本字段的值您的文本是时间。不是约会。你想要什么日期?今天?如果你想约会,就去问约会。我解释了为什么你得到1900年1月1日,这是你想要的,以及如何将2010-01-21 00:00:00.000显示为2010年1月21日和1900-01-01 09:09:18.000显示为09:09:18黄金,它们是两种不同的东西;你有那个datefield吗?-1,因为你没有提出正确的问题来获得公认的答案