oracle数据库里面查询时间并截取字段

里面有一个createtime 创建时间字段
select createtime from table 查询出来的结果是
2012年12月1日 13:45:23
2012年12月3日 13:45:23
2012年12月5日 13:45:23
2012年12月8日 13:45:23
这样的格式
我想查询出来的结果仍然是date类型 显示的结果是
2012-12-01
2012-12-03
2012-12-05
2012-12-08
各位大虾多多帮忙啊 ,我以前一直用SQL Server数据库,明天就要急用了,麻烦大家帮帮忙~

第1个回答  2012-10-12
你的 createtime 到底是 date类型,还是 varchar2类型:

如果是date类型,那么:
select to_char(createtime ,'yyyy-mm-dd') from table;

如果是varchar2类型,那么:
select to_char(to_date(createtime,'yyyy年mm月dd日 hh24:mi:ss') ,'yyyy-mm-dd') from table;
第2个回答  2012-10-11
先用to_char,再用to_date,语句如下:
select to_date(to_char(createtime, 'yyyy-mm-dd'), 'yyyy-mm-dd') from table;
第3个回答  推荐于2016-02-23
可以使用to_char或trunk函数。
例:select to_char(createtime,'yyyy-mm-dd') from table
select trunk(createtime) from table追问

用trunk函数 报错 trunk标示符无效
第一个可以,呵呵~

追答

呵呵。打错了,是trunc,是数据截取函数。

本回答被提问者采纳
第4个回答  2012-10-12
很简单 ,alter session set nls_date_format='yyyy-mm-dd';
然后再 做 select 查询即可
第5个回答  2012-10-12
oracle 写法,select to_char(createtime,'yyyy-mm-dd') from table 这个就可以实现了
相似回答