我有一个varchar类型的列,它包含8-Jun-12
和18-Jun-12
格式的日期
我有一个日期类型的空列
我想把日期作为实际日期填满我的专栏。我希望能逃脱这样的惩罚:
SET formatted_date=to_date(mydatecol, ('[0-9]{1,2}-[a-zA-Z]{3}-[0-9]{2}'));
但是我得到的列为null。
使用to_date()
:
update mytable
set formatted_date = to_date(mystring, 'dd-mon-yy')
PostgreSQL?
你可以硬投:
WITH
inp(dts) AS (
SELECT '8-Jun-12'
UNION ALL SELECT '18-Jun-12'
)
SELECT
dts
, dts::DATE
FROM inp;
-- out dts | dts
-- out -----------+------------
-- out 8-Jun-12 | 2012-06-08
-- out 18-Jun-12 | 2012-06-18