我正在使用SSMS,并且我在表中存储了日期/时间。我需要做的是更改时间,但要保留日期。
例如:2020-07-28 00:00:00。我需要将时间戳00:00:00更改为23:59:00,而不更改整个列的日期。
CPRDate -- Column Header
2020-07-28 00:00:00
2020-01-01 00:00:00
2017-01-01 00:00:00
您可以将它们一起添加为datetime
:
select cprdate + convert(datetime, convert(time, '23:59:00'))
如果要更改存储的值,可以在update
中使用相同的构造。
如果cprdate
是date
,则需要将其转换为datetime
才能起作用。
您可以减去一分钟再增加一天来实现这一目标,即
update MYTABLE SET CPRDate = DATEADD(day, 1, DATEADD(minute, -1, CPRDATE));
这里是SQL Fiddle 以显示其正常工作。
您可以将convert()
的值添加到date
,以损失小时(分钟,秒,...)部分,convert()
将其返回到datetime
,然后添加所需的小时(分钟,秒, ...)部分。
SELECT convert(datetime, convert(date, cprdate)) + convert(datetime, convert(time, '23:59:00'))
FROM elbat;