我需要将多个日期和时间字段组合到SQL查询中的日期时间中。遗憾的是,我无法更改初始数据库结构以将它们组合在原始服务器中 我可以在导出后组合SQL Query数据,但由于平面文件转换的问题,以及数据损坏/丢失的可能性,我犹豫不决,因为我需要将平面文件转换两次。
这些是我尝试过的东西:
SELECT Combine = cast([DateValue] as datetime) + Cast([TimeValue] as datetime)
不幸的是,这会导致错误,我的列数少于原始字段....
原始查询如下所示:
SELECT
Ordered_Date.DateValue,
Ordered_TOD.TimeValue,
Start_Date.DateValue,
Start_TOD.TimeValue,
End_Date.DateValue,
End_TOD.TimeValue,
Discontinued_Date.DateValue,
Discontinued_TOD.TimeValue
FROM
warehouse_report...........
WHERE
( ..... )
如果我将The Combine命令添加到SQL查询中,似乎它正在组合日期/时间。问题是,当我在SQL查询的SELECT部分实现它时,我减少了1列,它不会让我执行脚本...
SELECT
Ordered_Date.DateValue,
Ordered_TOD.TimeValue,
Start_Date.DateValue,
Start_TOD.TimeValue,
COMBINE = CAST(End_Date.DateValue as datetime) + CAST(End_TOD.TimeValue as datetime),
Discontinued_Date.DateValue,
Discontinued_TOD.TimeValue
FROM
warehouse_report...........
WHERE
( ..... )
这给了我一个关于SQL Query输出的专栏......
答案 0 :(得分:0)
如何连接值和解析:
SELECT cast([DateValue]||' '||[TimeValue] as datetime)
请提供有关您正在使用哪个SGBD以获得更好答案的信息。
EDIT1:
到SQL Server:
Select
x.d1
From (
Select
convert(datetime, '2018-01-01 00:00:00.0', 121) d1
) x
Union All
Select
convert(datetime,
substring(convert(varchar, x.d1, 121), 1, 11)
+ substring(convert(varchar, x.t1, 121), 11, 13)
, 121)
From (
Select
convert(datetime, '2018-01-01 00:00:00.0', 121) d1,
convert(datetime, '10:00:22') t1
) x