我有一张表,显示日期,区域和数量。日期全为空,但是我想为表中的所有值设置今天的虚拟日期/时间为凌晨5点。我希望日期部分可以根据今天的日期更改为今天。但是,我希望小时部分始终是凌晨5点。
Date Area Qty
Null A 1
Null B 3
Null C 2
今天11月5日,每条记录的“日期”字段将显示
2018-11-05 05:00:00.000
如果记录仍在明天(11月6日)存在,它将更改为
2018-11-06 05:00:00.000
我该如何实现?
答案 0 :(得分:1)
简单
UPDATE YourTable
SET [Date] = (SELECT
CAST(CAST(GetDate() AS DATE) AS DATETIME) +
CAST('05:00:00' AS DATETIME)
);
如果您每天需要这样做,则可以schedule a job每天运行此查询。
答案 1 :(得分:0)
您可以将其用于显示,也可以与工作一起每天更新表格:
SELECT DATEADD(HH, 5, CONVERT(DATETIME, CONVERT(date, GETDATE())))
答案 2 :(得分:0)
只需在现有日期上加+1,它将增加1天
UPDATE YourTable
SET [Date] = [Date] + 1
答案 3 :(得分:0)
您可以将该列转换为计算所得的列(毕竟这就是您要描述的内容):
alter table myTable drop column [Date];
alter table myTable add [Date] as
cast(cast(getdate() as date) as datetime) +
cast('05:00 AM' as datetime);