1. 程式人生 > >oracle,mysql中字串,date,timestamp轉換

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)

注:pos1開始

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')

datetimestamp

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)