该列被定义为VARCHAR。 此列中的数据:转换char-date-char
2012-03-11 12:10:00.0 IST
我想只有日期部分。
做什么是最好的方法?
我累了将其转换为日期:
to_char(to_date('2012-03-11 12:10:00.0 IST', 'YYYY-MM-DD'),'YYYY-MM-DD')
但得到了一个错误:日期格式图片两端将整个输入字符串之前
该列被定义为VARCHAR。 此列中的数据:转换char-date-char
2012-03-11 12:10:00.0 IST
我想只有日期部分。
做什么是最好的方法?
我累了将其转换为日期:
to_char(to_date('2012-03-11 12:10:00.0 IST', 'YYYY-MM-DD'),'YYYY-MM-DD')
但得到了一个错误:日期格式图片两端将整个输入字符串之前
更新:如果我得到你的权利,你只想要日期部分但不转换它迄今为止? 那么做到这一点:
select SUBSTR('2012-03-11 12:10:00.0 IST', 1, 10)
如果你也想将其转换为日期,那么这样做:
select to_date(SUBSTR('2012-03-11 12:10:00.0 IST', 1, 10))
于尔根·d是好的,可能是最快的。但是你也可以这样做:
select cast(to_timestamp('2012-03-11 12:10:00.0 IST', 'YYYY-MM-DD HH24:MI:SS.FF1 "IST"') as date) from dual;
为什么你在varchar列中有日期/时间数据?为什么你没有日期时间专栏? – 2012-03-12 11:53:46
它结束了,你的varchar2列不会停在'DD'处,请参阅http://www.techonthenet.com/oracle/functions/to_date.php – Ben 2012-03-12 11:55:17
@kenny - 你想要什么'DATE'?由于Oracle'DATE'既没有时区也没有小数秒,所以当您将数据转换为'DATE'时,您是否要忽略这两者?或者您是否想将时间转换为标准时区(即GMT/UTC)?你确定你不想将字符串转换为支持小数秒和时区的'TIMESTAMP WITH TIME ZONE'吗? – 2012-03-12 12:03:47