任务:将可能包含DateTme
的{{1}}列(以varchar形式显示)转换为空字符串。
在T-SQL中最有效的方法是什么?
例如,如果我使用:
1753-01-01
如何有效地将任何包含“ 1753-01-01”的行更改为空字符串?
注意::似乎值“ 1753-01-01”确实出现在数据库表中;有时会在存在null的地方返回它。一个人甚至可以将日期设为yy并得到1753,因此从一般意义上讲它不是“ null”。
另请参见:
What is the significance of 1/1/1753 in SQL Server?
以获得该特定日期的背景。
另外,请参阅:{有关将日期时间转换为varchar的一般讨论}:
How to convert DateTime to VarChar
这是针对使用SSMS 14.0.17的Microsoft SQL Server 2014
答案 0 :(得分:3)
使用replace()
。
SELECT replace(left(convert(varchar, datecol1, 120), 10), '1753-01-01', '')
FROM ourtable;