在SQL Server 2000中使用不同的数据类型连接日期和时间列

时间:2013-11-09 16:40:32

标签: sql-server date time concatenation field

我的表格中有日期和时间栏,如下所示

       Date           |      Time    

2013-08-23 00:00:00.000 | 13年5月26日

2013-09-16 00:00:00.000 | 10.36.09

2013-10-21 00:00:00.000 | 11.58.35

Date字段的数据类型是datetime,time字段的数据类型是varchar。我想连接这两个字段,并在新字段中获得如下所示的输出

2013-08-23 05:26:13.000

2013-09-16 10:36:09.000

2013-10-21 11:58:36.000

基本要求是上述时间是在PST时区,我想将其转换为EST,MST,AST和CST时区。

1 个答案:

答案 0 :(得分:1)

在PST中获取完整的日期和时间可以通过获取相关的字符串部分并将它们添加到日期来完成:

select 
  dateadd(hour, cast(left(theTime,2) as int), 
  dateadd(minute, cast(substring(theTime, 4,2) as int), 
  dateadd(second, cast(right(theTime, 2) as int), theDate))) as dateTimePST

使用内置函数在SQL-Server 2000中无法将 dateTimePST 转换为考虑夏令时(DST)的任何其他时区。根据您的具体情况,您可以向数据库添加一些转换表,或者在业务逻辑中执行转换,或者根据您的具体情况执行其他解决方案。