1、oracle里的系统时间是sysdate,是date类型,执行select sysdate from dual,得到yyyy/mm/dd hh24:mi:ss形式的时间,oracle不区分大小写。dual表是oracle实际存在的表,当sql强制某些数据必须从某表中获得,也就是说必须有from命令就可以使用dual。
yyyy代表年份,mm代表月份,dd代表天
hh24代表24小时进制的时,如果没有24就是12小时进制的时,mi代表分钟(minute),不用mm代表分钟是因为mm已代表月份,ss代表秒数
以2021/9/26 22:29:30时间为例,执行select to_char(sysdate,格式) from dual
格式:显示值
yy:21,后两位年
yyy:021,后三位年
yyyy:2021,四位年
mm:09,如果要显示9可以执行 select EXTRACT(MONTH FROM sysdate) as MONTH_OF_YEAR from dual
mon:9月,英文版显示sep
(看英文版的时间可以select to_char(sysdate,格式,'NLS_DATE_LANGUAGE = American') from dual,也可以ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN' ,断开数据库连接之后,字符局还原为中文字符集,时间变为中文版)
month:9月,英文版显示september
d:1,一周中的第几天,星期天是第一天
dd:26,当月的第几天
ddd:269,当年的第几天
dy:星期日,一周中的星期几,英文显示sun
day:星期日,一周中的星期几,英文显示Sunday
hh:10,12小时进制
hh24:22,24小时进制
mi:29
ss:30
q:3,当年的第几个季度
w:4,当月的第几周
ww:39,当年的第几周
2、to_char()可以将日期转换成相应格式的时间格式,类型是char
如select to_char(sysdate,'yyyymmdd') from dual,得到'20210925'
select to_char(sysdate,'yyyy-mm-dd') from dual,得到'2021-09-25'
3、trunc函数用法
trunc()函数用于截取时间或数值,返回指定的值
以2021/9/27 22:34:30时间为例,执行select trunc(sysdate,格式) from dual
格式:显示值
yyyy(yyy/yy):2021/1/1,显示当年第一天,截取到年,剩下的月日都默认为1
mm(mon/month):2021/9/1,显示当月第一天,截取到月,剩下的日默认为1
dd(ddd):2021/9/27,显示当前年月日,截取到日
d(dy/day):2021/9/26,显示当前星期的第一天的年月日,如今天是星期一,就显示星期天的日期,因为星期天是这个星期的第一天
hh:2021/9/27 22:00:00,截取到小时,剩下的分秒默认为0
mi:2021/9/27 22:34:00,截取到分钟,剩下的秒默认为0
补充:trunc(number,decimals),截取数值,number是指需要截取的数字,decimal指截取的小数位数,默认为0
select trunc(90.125) from dual,显示90,因为decimal为0
select trunc(90.125,2) from dual,显示90.12,截取到两位小数
select trunc(90.125,5) from dual,显示90.125,截取到三位小数,虽然decimal是5,但是只有三位小数