SQL 设置今天凌晨 5 点的虚拟日期
SQL Set a dummy date of Today at 5AM
我有一个显示日期、区域和数量的 table。日期都是空的,但我想为 table 中的所有值设置今天早上 5 点的虚拟 date/time。我希望根据今天的日期将日期部分更改为今天。但是,我希望小时部分始终是凌晨 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
我怎样才能做到这一点?
您可以使用它来展示,或者每天更新 table:
SELECT DATEADD(HH, 5, CONVERT(DATETIME, CONVERT(date, GETDATE())))
简单
UPDATE YourTable
SET [Date] = (SELECT
CAST(CAST(GetDate() AS DATE) AS DATETIME) +
CAST('05:00:00' AS DATETIME)
);
如果你需要每天都做这个,你可以每天schedule a job到运行这个查询。
只需在现有日期上加 + 1,它就会增加 1 天
UPDATE YourTable
SET [Date] = [Date] + 1
您可以将该列转换为计算列(毕竟这就是您所描述的内容):
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);
我有一个显示日期、区域和数量的 table。日期都是空的,但我想为 table 中的所有值设置今天早上 5 点的虚拟 date/time。我希望根据今天的日期将日期部分更改为今天。但是,我希望小时部分始终是凌晨 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
我怎样才能做到这一点?
您可以使用它来展示,或者每天更新 table:
SELECT DATEADD(HH, 5, CONVERT(DATETIME, CONVERT(date, GETDATE())))
简单
UPDATE YourTable
SET [Date] = (SELECT
CAST(CAST(GetDate() AS DATE) AS DATETIME) +
CAST('05:00:00' AS DATETIME)
);
如果你需要每天都做这个,你可以每天schedule a job到运行这个查询。
只需在现有日期上加 + 1,它就会增加 1 天
UPDATE YourTable
SET [Date] = [Date] + 1
您可以将该列转换为计算列(毕竟这就是您所描述的内容):
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);