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数据库,明天就要急用了,麻烦大家帮帮忙~
最新回答
待在绿匣里的猫

2024-09-17 01:50:47

你的 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;
忆海

2024-09-17 00:38:10

先用to_char,再用to_date,语句如下:
select to_date(to_char(createtime, 'yyyy-mm-dd'), 'yyyy-mm-dd') from table;
仙女不需要爱

2024-09-17 00:54:51

可以使用to_char或trunk函数。
例:select to_char(createtime,'yyyy-mm-dd') from table
select trunk(createtime) from table
追问
用trunk函数  报错 trunk标示符无效
第一个可以,呵呵~
追答
呵呵。打错了,是trunc,是数据截取函数。
脸滚键盘抬头懵

2024-09-17 00:58:43

很简单 ,alter session set nls_date_format='yyyy-mm-dd';
然后再 做 select 查询即可
给十年后的我

2024-09-17 02:46:45

oracle 写法,select to_char(createtime,'yyyy-mm-dd') from table 这个就可以实现了