我正在尝试用另一个替换特定的日期时间值。我尝试过:
SELECT REPLACE(t.date,'1999-01-01 00:00:00.000','1900-01-01 00:00:00.000')
FROM table t
但结果导致
Jan 1 1999 12:00AM
我在这里做错了什么?
答案 0 :(得分:2)
您无法在replace()
数据类型上使用datetime
,但可以使用isnull()
和nullif()
或case
表达式的组合。
使用isnull(nullif())
:
select isnull(nullif(t.date,'1999-01-01 00:00:00.000'),'1900-01-01 00:00:00.000')
from table t
使用case
表达式:
select case when t.date = '1999-01-01 00:00:00.000'
then '1900-01-01 00:00:00.000'
else t.date
end
from table t
rextester演示:the docs