SQL 将字符串转换为日期问题
SQL CONVERT string to date issue
我有一列包含这样的字符串值 05.2015
。
我需要以前 2 个字符为月份且日期始终为第一个的格式获取 DATE 值...
所以在这个例子中它将是 01/05/2015 ... 或 2015-05-01 ..取决于数据库。
我试过了
select CONVERT(VARCHAR(7),"String_Date_column",0) from TABLE;
但我收到此错误:
"No authorized routine named "CONVERT" of type "FUNCTION" having compatible arguments was found.. SQLCODE=-440, SQLSTATE=42884, DRIVER=3.69.56 ".
我在 dashDB 运行。
试试这个
SELECT cast(substring(String_Date_column,4,4)+substring(String_Date_column,1,2)+'01' as date)
TO_DATE (CD."Application_Creation_Period",'mm.yyyy')
工作正常。我需要添加 CASE
因为该列还包含一个字符值“#”。所以完整的答案是:
select case
when "string_date_column" = '#' then null
else TO_DATE ("string_date_column",'mm.yyyy')
end as "new date" from table;
我有一列包含这样的字符串值 05.2015
。
我需要以前 2 个字符为月份且日期始终为第一个的格式获取 DATE 值...
所以在这个例子中它将是 01/05/2015 ... 或 2015-05-01 ..取决于数据库。
我试过了
select CONVERT(VARCHAR(7),"String_Date_column",0) from TABLE;
但我收到此错误:
"No authorized routine named "CONVERT" of type "FUNCTION" having compatible arguments was found.. SQLCODE=-440, SQLSTATE=42884, DRIVER=3.69.56 ".
我在 dashDB 运行。
试试这个
SELECT cast(substring(String_Date_column,4,4)+substring(String_Date_column,1,2)+'01' as date)
TO_DATE (CD."Application_Creation_Period",'mm.yyyy')
工作正常。我需要添加 CASE
因为该列还包含一个字符值“#”。所以完整的答案是:
select case
when "string_date_column" = '#' then null
else TO_DATE ("string_date_column",'mm.yyyy')
end as "new date" from table;