gpt4 book ai didi

sql - 运行 SELECT 语句时,日期列中的空白值返回为 1900/01/01

转载 作者:行者123 更新时间:2023-12-02 23:18:46 33 4
gpt4 key购买 nike

[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

最佳答案

您不需要像问题中所示那样进行字符串操作。如果您以 mm/dd/yyyy 格式存储日期,只需将其转换为 DATE。

SELECT cast(a.[PAYOFF DATE] AS DATE) 
FROM MTG a

对于 1900-01-01 值,由于您要从字符串数据类型转换为日期,因此字符串数据类型可以有空字符串,但日期数据类型不能有空日期值,它可以有日期值或 NULL 值。

因此,在将空字符串转换为日期之前,您需要将其转换为 null。 1900-01-01 只是 sql server 为您输入的默认值,因为日期数据类型不能有空值。

您可以通过执行以下操作来避免使用此 sql server 默认值。

SELECT cast(NULLIF(a.[PAYOFF DATE],'') AS DATE) 
FROM MTG a

关于sql - 运行 SELECT 语句时,日期列中的空白值返回为 1900/01/01,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22973154/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com