【问题标题】:Teradata: how to convert varchar value (format 'dd.mm.yyyy') to date (format 'yyyy-mm-dd' )?Teradata:如何将 varchar 值(格式“dd.mm.yyyy”)转换为日期(格式“yyyy-mm-dd”)?
【发布时间】:2018-03-16 20:22:57
【问题描述】:
如何在 Teradata 的 WHERE 子句中将包含 dd.mm.yyyy 格式的日期的 varchar 值转换为日期格式“yyyy-mm-dd”?
需要编写如下代码:
SELECT * from TABLE
WHERE <some operations with VARCHAR variable containing date> between '2015-06-01' and '2017-12-31'
【问题讨论】:
标签:
sql
date
teradata
varchar
【解决方案1】:
您需要在投射期间应用一种格式,无论是 Teradata 样式:
WHERE CAST(str AS DATE FORMAT 'dd.mm.yyyy')
BETWEEN DATE '2015-06-01' AND DATE '2017-12-31'
或Oracle风格:
WHERE TO_DATE(str, 'dd.mm.yyyy')
BETWEEN DATE '2015-06-01' AND DATE '2017-12-31'
顺便说一句,我在字符串前面添加了DATE,这是编写日期文字的推荐(并且始终可靠)方式。