to_char函数的功能是将数值型或者日期型转化为字符型,这里仅涉及其后者功能。
官方描述: TO_CHAR (datetime) converts a datetime or interval value of DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, or TIMESTAMP WITH LOCAL TIME ZONE datatype to a value of VARCHAR2 datatype in the format specified by the date format fmt. TO_CHAR (datetime)
语法:
to_char(date,'YYYY/MM/DD')
示例:
select to_char(sysdate, 'YYYY/MM/DD' ) FROM DUAL;
结果:
2019/04/11
格式不区分大小写,分割线可自行定义,这里使用“/”为例:
日期格式 | 说明 |
---|---|
YYYY/MM/DD | 年/月/日 |
YYYY/MM | 年/月 |
MM | 月份 |
DD | 日期 |
D | 从星期日算起,一星期中的第n天。即星期日 = 1; 星期一 = 2; 星期二 = 3;星期三 = 4; 星期四 = 5; 星期五 = 6; 星期六 = 7; |
DDD | 一年中的第n天 |
WW | 一年中的第n周 |
W | 一个月中的第n周 |
Q | 一年中的第n季度 |
YYYY/MM/DD HH24:MI:SS | 年/月/日 時(24小時制):分:秒 |
YYYY/MM/DD HH:MI:SS | 年/月/日 時(非24小時制):分:秒 |
Oracle TO_DATE 函数将字符串或表达式转换为日期值。
官方描述:
TO_DATE
convertschar
ofCHAR
,VARCHAR2
,NCHAR
, orNVARCHAR2
datatype to a value ofDATE
datatype. The fmt is a datetime model format specifying the format ofchar
. If you omitfmt
, thenchar
must be in the defaultdate
format. Iffmt
isJ
, for Julian, thenchar
must be an integer. TO_DATE
TRUNC(date)函数返回date
当天的时间部分被格式模型fmt
截断到指定的单位
返回的值始终为数据类型DATE,即使您为该date
指定了不同的datetime数据类型。如果省略fmt
,则date截断到最近的一天。
官方描述: The TRUNC (date) function returns date with the time portion of the day truncated to the unit specified by the format model fmt. The value returned is always of datatype DATE, even if you specify a different datetime datatype for date. If you omit fmt, then date is truncated to the nearest day. TRUNC (date)
select trunc(sysdate) from dual --2019-04-11 00:00:00 今天的日期为2019-04-11
select trunc(sysdate, 'mm') from dual --2019-04-01 00:00:00 返回当月第一天.
select trunc(sysdate,'yy') from dual --2019-01-01 00:00:00 返回当年第一天
select trunc(sysdate,'dd') from dual --2019-04-11 00:00:00 返回当前年月日
select trunc(sysdate,'yyyy') from dual --2019-01-01 00:00:00 返回当年第一天
select trunc(sysdate,'d') from dual --2019-04-07 00:00:00 返回当前星期的第一天 (星期天为星期的第一天)
select trunc(sysdate, 'hh') from dual --2019-04-11 19:00:00 当前时间为19:20
select trunc(sysdate, 'mi') from dual --2019-04-11 19:16:00 精确到分钟,TRUNC()函数没有秒的精度
EXTRACT从日期时间或间隔值表达式中提取并返回指定日期时间字段的值。
官方描述: EXTRACT extracts and returns the value of a specified datetime field from a datetime or interval value expression. When you extract a TIMEZONE_REGION or TIMEZONE_ABBR (abbreviation), the value returned is a string containing the appropriate time zone name or abbreviation. When you extract any of the other values, the value returned is in the Gregorian calendar. When extracting from a datetime with a time zone value, the value returned is in UTC. For a listing of time zone names and their corresponding abbreviations, query the V$TIMEZONE_NAMES dynamic performance view. EXTRACT (datetime)
extract(expression from date)
示例:
select extract(year from sysdate) FROM DUAL;
结果:
2019
expression | 说明 |
---|---|
year | 年度 |
month | 月份 |
day | 日期 |