T-SQL:将可能包含“1753-01-01”的日期时间列 varchar 强制转换为空字符串
T-SQL: DateTme Column varchar cast that may contain '1753-01-01' to empty string
任务:将可能包含 1753-01-01
的 DateTme
列(转换为 varchar)转换为空字符串。
在 T-SQL 中最有效的方法是什么?
例如,如果我使用:
SELECT
LEFT(CONVERT(VARCHAR, DateCol1, 120), 10)
FROM
ourDatabase.dbo.ourTable
如何有效地将任何包含“1753-01-01”的行更改为空字符串?
注意: 值“1753-01-01”确实出现在数据库中 table;它有时会在有空值的地方返回。甚至可以执行 datepart yy 并得到 1753,因此它不是通常意义上的“null”。
另请参阅:
What is the significance of 1/1/1753 in SQL Server?
了解这个特定日期的背景。
另请参阅:{Datetime 到 varchar 转换的一般讨论}:
How to convert DateTime to VarChar
这适用于使用 SSMS 14.0.17
的 Microsoft SQL Server 2014
使用replace()
.
SELECT replace(left(convert(varchar, datecol1, 120), 10), '1753-01-01', '')
FROM ourtable;
任务:将可能包含 1753-01-01
的 DateTme
列(转换为 varchar)转换为空字符串。
在 T-SQL 中最有效的方法是什么?
例如,如果我使用:
SELECT
LEFT(CONVERT(VARCHAR, DateCol1, 120), 10)
FROM
ourDatabase.dbo.ourTable
如何有效地将任何包含“1753-01-01”的行更改为空字符串?
注意: 值“1753-01-01”确实出现在数据库中 table;它有时会在有空值的地方返回。甚至可以执行 datepart yy 并得到 1753,因此它不是通常意义上的“null”。
另请参阅:
What is the significance of 1/1/1753 in SQL Server?
了解这个特定日期的背景。
另请参阅:{Datetime 到 varchar 转换的一般讨论}:
How to convert DateTime to VarChar
这适用于使用 SSMS 14.0.17
的 Microsoft SQL Server 2014使用replace()
.
SELECT replace(left(convert(varchar, datecol1, 120), 10), '1753-01-01', '')
FROM ourtable;