我正在使用Sybase IQ并将以下内容存储为varchar:
2010年10月1日我想使用以下格式将其从varchar转换为date数据类型:
yyyy-mm-dd eg.2010-10-01怎么样 …
Sybase能够将字符串转换为日期。所以,如果你使用 substring 要将日期提取为IQ可以转换的格式,那么您只需使用 convert() 功能。
substring
convert()
以下是如何执行此操作的示例:
样本数据:
create table #tmp1 (col1 varchar(100)) insert #tmp1 values ('01October 2010')
查询将值转换为日期:
select convert ( date, ( substring(col1, 3, charindex(' ', col1) - 2) -- Month + substring(col1, 1, 2) -- Day + substring(col1, charindex(' ', col1), 5) -- Year (include the leading space) ) ) from #tmp1
现在该值是日期格式,您可以使用 兑换 函数将date数据类型转换为字符串,使用指定的格式。 date数据类型的默认输出已经是yyyy-mm-dd。
的 编辑: 强> 看了@BaconBits的答案之后,我意识到我可以通过使用substring函数包装器来简化查询 left , right ,以及转换包装器 date 。这是相同的逻辑;但使用简化的包装可能会使它更容易理解。
left
right
date
select date ( substring(col1, 3, charindex(' ', col1) - 2) -- Month + left(col1, 2) -- Day + ' ' + right(col1, 4) -- Year (include the leading space) ) from #tmp1