oracle,mysql中字串,date,timestamp轉換
查詢當前系統日期:
Oracle: select to_char(sysdate, 'yyyy-mm-dd')
Mysql:select current_date或者 select curdate()
查詢當前系統時間:
Oracle: select to_char(sysdate, 'hh24:mi:ss')
Mysql: select curtime()或者 select current_time
查詢系統日期和時間:
Oracle: select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
Mysql: select sysdate() 或者 select now()
時間戳:
Oracle: select systimestamp
Mysql: select current_timestamp或者select current_timestamp()
字串擷取:
Oracle: substr(ch,pos,length)
注:pos 0 ,1都可以
Myslq: substr(str,pos,len) 或者 substring(str,pos,len)
注:pos從1開始
Oracle:
日期轉字串:
to_char(date,format)
ex: select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss')
select to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss.ff')
字串轉timestamp:
ex: to_timestamp('2017-09-29 10:49:42.322940', 'yyyy-mm-dd hh24:mi:ss.ff')
to_timestamp(to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss.ff'),'yyyy-mm-dd hh24:mi:ss.ff')
字串轉date
to_date(ch,fmt)
ex: select to_date('2017-09-29 10:24:15', 'yyyy-mm-dd hh24:mi:ss')
date轉timestamp:
ex: select cast(sysdate as timestamp)
select cast(to_date('2017-09-29 10:34:01', 'yyyy-mm-dd hh24:mi:ss') as timestamp)
時間戳轉date:
ex: to_date('19700101','yyyymmdd') + (時間戳) / 86400 +to_number(substr(tz_offset(sessiontimezone), 1, 3)) / 24
前一個月:
ex: select add_months(sysdate, -1) from dual
前一日:
ex: select sysdate - 1 from dual
前一天前一小時前一分鐘前一秒:
ex: select '前一天前一小時前一分鐘前一秒' TITLE, to_char(SYSDATE - 1 - 1 / 24 - 1 / 24 / 60 - 1 / 24/ 60 / 60, 'yyyy-mm-dd hh24:mi:ss') TIME
月份之差:
ex: select months_between(sysdate, to_date('2017-05-29', 'yyyy-mm-dd')) from dual
Mysql:
UNIX時間戳轉換為日期:
from_unixtime(unix_timestamp,format)
引數:UNIX 時間戳返回值:字串
ex: from_unixtime (1506648322, '%Y-%m-%d %H:%i:%s' )
日期轉換為UNIX時間戳:
unix_timestamp(date)
如果沒有引數呼叫,返回一個Unix時間戳(從'1970-01-01 00:00:00'GMT開始的秒數)
如果一個date引數被呼叫,返回從'1970-01-01 00:00:00' GMT開始到date的秒數值
ex: select unix_timestamp()
date轉字串:
date_format(date,format)
ex: select date_format(now(), '%Y-%m-%d %H:%i:%s')
字串轉date:
str_to_date(str,format)
ex: select str_to_date('2017-10-27 08:48:50', '%Y-%m-%d %H:%i:%s')
字串轉時間戳:
ex: select unix_timestamp('2017-10-27 08:48:50')
結果:1509065330
時間戳轉字串:
ex: select from_unixtime(1509065330, '%Y-%m-%d %H:%i:%s')
結果:2017-10-27 08:48:50
date轉時間戳:
ex: select unix_timestamp(now())
結果:1509066003
時間戳轉date:
ex: select from_unixtime(1509066003)
結果:2017-10-27 09:00:03
日期減去一個時間間隔:
date_sub()
ex: date_sub(date, interval 1 day)
date_sub(date, interval -1 day)
date_sub(date, interval 1 month)
date_sub(date, interval 1 year)