SQL Server - 将数据时间字段替换为另一个日期

时间:2017-03-02 13:51:24

标签: sql-server tsql

我正在尝试用另一个替换特定的日期时间值。我尝试过:

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

我在这里做错了什么?

1 个答案:

答案 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