Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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
使用不一致的数据将NVARCHAR转换为DateTime(SQL Server 2014 Express)_Sql_Datetime_Time_Casting_Sql Server 2014 Express - Fatal编程技术网

使用不一致的数据将NVARCHAR转换为DateTime(SQL Server 2014 Express)

使用不一致的数据将NVARCHAR转换为DateTime(SQL Server 2014 Express),sql,datetime,time,casting,sql-server-2014-express,Sql,Datetime,Time,Casting,Sql Server 2014 Express,在一个场景中,我需要将NVARCHAR列中包含时间的hh:mm:ss格式转换为DateTime列,以便更好地过滤 其中一个难题是,我没有真正的日期,据我所知,SQL没有Timedatatype,但我可以将所有数据转换为'1900-01-01'并附加时间部分-我可以接受这一点,在比较时我只使用'1900-00-00' 更大的问题是,我正在转换的时间数据的小时值高达27小时(根据他们的说法,一天中有超过24小时)。所以有一些值,比如24:17,26:25等等 要转换为datetime我需要做一些清理

在一个场景中,我需要将
NVARCHAR
列中包含时间的
hh:mm:ss
格式转换为
DateTime
列,以便更好地过滤

其中一个难题是,我没有真正的日期,据我所知,SQL没有
Time
datatype,但我可以将所有数据转换为'1900-01-01'并附加时间部分-我可以接受这一点,在比较时我只使用'1900-00-00'

更大的问题是,我正在转换的时间数据的小时值高达27小时(根据他们的说法,一天中有超过24小时)。所以有一些值,比如24:17,26:25等等

要转换为
datetime
我需要做一些清理/
字符串。首先替换
即:24:17->00:17;02:25等

但在我深入讨论这个问题之前,还有其他更优雅的SQL处理方法吗


使用SQL Server 2014 Express。

您所指的是哪个数据库?根据RDBMS,您可以简单地更新数据,以便将前两位数字更新为mod(24)的结果,然后进行转换。类似于
选择MOD(substr(fieldName,1,2),24)但您可能必须首先强制转换它,那么什么是RDBMS呢?从2008年开始,SQL Server确实有一个“时间”数据类型。Sry的家伙们,完全忘了提到哪个RDBMS。刚刚编辑了这个问题,起诉了Sql Express 2014。当然,Sql Server有一个
TIME
datatype!!在那个数据类型上!该数据类型早在SQLServer2008年就引入了——很久以前!