日期型別轉換(1)

2021-09-01 15:18:10 字數 3747 閱讀 5285

oracle日期時間函式大全

oracle日期時間函式大全

year:

yy two digits 兩位年 顯示值:07

yyy three digits 三位年 顯示值:007

yyyy four digits 四位年 顯示值:2007

month:

mm number 兩位月 顯示值:11

mon abbreviated 字符集表示 顯示值:11月,若是英文版,顯示nov

month spelled out 字符集表示 顯示值:11月,若是英文版,顯示november

day:

dd number 當月第幾天 顯示值:02

ddd number 當年第幾天 顯示值:02

dy abbreviated 當周第幾天簡寫 顯示值:星期五,若是英文版,顯示fri

day spelled out 當周第幾天全寫 顯示值:星期五,若是英文版,顯示friday

ddspth spelled out, ordinal twelfth

hour:

hh two digits 12小時進製 顯示值:01

hh24 two digits 24小時進製 顯示值:13

minute:

mi two digits 60進製 顯示值:45

second:

ss two digits 60進製 顯示值:25

其它q digit 季度 顯示值:4

ww digit 當年第幾周 顯示值:44

w digit 當月第幾周 顯示值:1

24小時格式下時間範圍為: 0:00:00 - 23:59:59....

12小時格式下時間範圍為: 1:00:00 - 12:59:59 ....

1. 日期和字元轉換函式用法(to_date,to_char)

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowtime from dual; //日期轉化為字串

select to_char(sysdate,'yyyy') as nowyear from dual; //獲取時間的年

select to_char(sysdate,'mm') as nowmonth from dual; //獲取時間的月

select to_char(sysdate,'dd') as nowday from dual; //獲取時間的日

select to_char(sysdate,'hh24') as nowhour from dual; //獲取時間的時

select to_char(sysdate,'mi') as nowminute from dual; //獲取時間的分

select to_char(sysdate,'ss') as nowsecond from dual; //獲取時間的秒

select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual

2. select to_char( to_date(222,'j'),'jsp') from dual

顯示two hundred twenty-two

3.求某天是星期幾

select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;

星期一

select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','nls_date_language = american') from dual;

monday

設定日期語言

alter session set nls_date_language='american';

也可以這樣

to_date ('2002-08-26', 'yyyy-mm-dd', 'nls_date_language = american')

4. 兩個日期間的天數

select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;

5. 時間為null的用法

select id, active_date from table1

union

select 1, to_date(null) from dual;

注意要用to_date(null)

6.月份差

a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')

那麼12月31號中午12點之後和12月1號的12點之前是不包含在這個範圍之內的。

所以,當時間需要精確的時候,覺得to_char還是必要的

7. 日期格式衝突問題

輸入的格式要看你安裝的oracle字符集的型別, 比如: us7ascii, date格式的型別就是: '01-jan-01'

alter system set nls_date_language = american

alter session set nls_date_language = american

或者在to_date中寫

select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','nls_date_language = american') from dual;

注意我這只是舉了nls_date_language,當然還有很多,

可檢視

select * from nls_session_parameters

select * from v$nls_parameters

8. select count(*)

from ( select rownum-1 rnum

from all_objects

where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-

02-01','yyyy-mm-dd')+1

) where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'd' )

not in ( '1', '7' )

查詢2002-02-28至2002-02-01間除星期一和七的天數

在前後分別呼叫dbms_utility.get_time, 讓後將結果相減(得到的是1/100秒, 而不是毫秒).

9. 查詢月份

select months_between(to_date('01-31-1999','mm-dd-yyyy'),to_date('12-31-1998','mm-dd-yyyy')) "months" from dual;

1 select months_between(to_date('02-01-1999','mm-dd-yyyy'),to_date('12-31-1998','mm-dd-yyyy')) "months" from dual;

1.03225806451613

10. next_day的用法

next_day(date, day)

monday-sunday, for format code day

mon-sun, for format code dy

1-7, for format code d

日期型別轉換

public static final int hours 0 public static final int minutes 1 將字串轉換成日期格式 param date param format return throws exception public static date parsed...

js日期型別轉換

日期型別轉換格式函式 date.prototype.format function dt if y test dt dt dt.replace regexp.1,this.getfullyear substr 4 regexp.1.length for var k in o if new regex...

Python 日期型別轉換

從資料庫中查詢出的日期格式是 fri 12 jul 2019 00 00 00 gmt 需要轉換成 2019 07 12 d fri 12 jul 2019 00 00 00 gmt gmt format a d b y h m s gmt date1 datetime.datetime.strpt...