列[PAYOFF DATE]有一些空白值和一些mm / dd / yy格式的值。
我必须更换' /'用' - '并将日期返回为yyyy-mm-dd。以下查询正在执行此操作。问题是,对于所有空白值,我得到结果为1900-01-01。
是否可以将1900-01-01替换为null并返回yyyy-mm-dd格式的其他有效日期值?
我正在使用SQL Server。
SELECT
cast(replace(a.[PAYOFF DATE],'/','-') as date)
FROM MTG a
答案 0 :(得分:6)
您不需要像在问题中显示的那样进行字符串操作。如果您有以mm/dd/yyyy
格式存储的日期,则将其投放为日期。
SELECT cast(a.[PAYOFF DATE] AS DATE)
FROM MTG a
对于1900-01-01
值,由于您要从字符串数据类型转换为Date,因此String数据类型可以具有空字符串但Date数据类型不能具有空日期值,它可以具有日期值或{{1}价值。
因此,在将空字符串转换为日期之前,需要将空字符串转换为空字符串。 1900-01-01只是sql server为您输入的默认值,因为Date数据类型不能为空值。
您可以通过执行此类操作来避免使用此sql server默认值。
NULL
答案 1 :(得分:0)
[付款日期] =''THEN NULL ELSE TRY_CONVERT(DATE,[付款日期])结束时的情况