SQL Server查询以使用另一个日期列的一部分更改日期部分

时间:2017-03-24 23:48:25

标签: sql sql-server date

我在SQL Server中有一个表,有时DATE列从导入过程得到错误的日期,并且它被设置为2099年8月22日,而DATE列的时间部分是OK。< / p>

我可以使用此查询查看所有这些列:

SELECT
    [ImportId], [Date], [PickupId],
    [Quantity], [Temp], [ImportDate]
FROM 
    [DatabaseName].[dbo].[Imports]
WHERE 
    Date  >= Convert(datetime, '2018-12-31' )

因此, DATE 列的错误日期和正确的时间,如下所示:

2099-08-22 03:10:18.000

IMPORTDATE列的正确日期,但将时间部分清零,如下所示:

2017-03-22 00:00:00.000

我想将 IMPORTDATE 的日期部分和DATE列的时间部分组合在一起,成为新的DATE列:

2099-08-22 03:10:18.000    (time part from DATE column)
2017-03-22 00:00:00.000    (date part from IMPORTDATE column)
2017-03-22 03:10:18.000    (combined will be new DATE column)

所以这条记录:

ImportId    Date                      PickupId  Quantity    Temp    ImportDate
74256       2099-08-22 03:10:18.000   111111    2356        3,8     2016-04-12 00:00:00.000

会变成这样:

ImportId    Date                      PickupId  Quantity    Temp    ImportDate
74256       2016-04-12 03:10:18.000   111111    2356        3,8     2016-04-12 00:00:00.000

有谁愿意构建适当的SQL查询来为我做这个吗?

2 个答案:

答案 0 :(得分:0)

将错误的日期时间值视为仅限时间。计算从零到正确日期的天数。将该天数添加到正确的时间=正确的日期时间值。

请注意,你不能在时间值上使用dateadd(),因此我已经转换为时间,然后将其转换回日期时间。

self.check.alpha

答案 1 :(得分:0)

我无法在此发表评论,但这正是您所需要的:

document.querySelectorAll(".two")[0].appendChild(clone);

你可以在这里找到LukeH:How to combine date from one field with time from another field - MS SQL Server