【问题标题】:casting string to date not working on empty strings in Netezza将字符串转换为日期不适用于 Netezza 中的空字符串
【发布时间】:2011-11-30 20:27:46
【问题描述】:

我有一个格式为yyyy-mm-dd 的字符串字段。我需要将其转换为日期字段。

这是我的 SQL 查询:

select cast(rpad(trim(field_name),10,' ') as date) as field_name
from table_name

它适用于有值的记录,但不适用于空字符串的记录

我也尝试使用 to_date 函数,但它给出了一个错误提示“无效日期”

【问题讨论】:

    标签: sql string date casting netezza


    【解决方案1】:

    检查以下查询。

    SELECT TRIM(LEADING 0 FROM CAST("YourStringColumn" AS DATE))

    【讨论】:

    • 嗨,Venk,我之前确实尝试过,它给了我一个“无效日期”错误
    • 我正在创建一个表,我需要该字段作为新表中的日期。
    【解决方案2】:

    Netezza 不喜欢将空字符串转换为日期(与 SQL Server 不同),因此最好使用 case 语句将空字符串转换为 null。试试这个:

    select case when field_name = '' then NULL else date(field_name) end as field_name
    from table_name;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-21
      • 2015-04-27
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多