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,但是只有三位小數