今天總結一下日期時間如何處理,方便以后查看。
-
1 Oracle
-
1.1 日期格式參數及其含義說明
Oracle不區分大小寫,所以下面參數大小寫都可以
D ? ? ? ? ? ? ?一周中的星期幾 ? ??
DAY ? ? ? ?天的名字,使用空格填充到9個字符 ? ??
DD ? ? ? ? ?月中的第幾天 ? ??
DDD ? ? ? 年中的第幾天 ? ??
DY ? ? ? ? ?天的簡寫名 ? ??
IW ? ? ? ? ? ISO標準的年中的第幾周 ? ??
IYYY ? ? ?ISO標準的四位年份 ? ??
YYYY ? ?四位年份 ? ??
YYY,YY,Y ? ? ? 年份的最后三位,兩位,一位 ? ??
HH ? ? ? ? 小時,按12小時計 ? ??
HH24 ? ?小時,按24小時計 ? ??
MI ? ? ? ? 分 ? ??
SS ? ? ? ? 秒 ? ??
MM ? ? ?月 ? ??
Mon ? ? 月份的簡寫 ? ??
Month ?月份的全名 ? ??
W ? ? ? ?該月的第幾個星期
WW ? ?年中的第幾個星期
注意:表示12小時制(HH)時,時間范圍為1-12,對應的時間參考掛鐘時針的指向。24小時制時,時間范圍是0-23
-
1.2 日期加減操作
sysdate+(5/24/60/60) 在系統時間基礎上延遲5秒?
sysdate+5/24/60 在系統時間基礎上延遲5分鐘?
sysdate+5/24 在系統時間基礎上延遲5小時?
sysdate+5 在系統時間基礎上延遲5天?
add_months(sysdate,-5) 在系統時間基礎上延遲5月?
add_months(sysdate,-5*12) 在系統時間基礎上延遲5年?
當前時間減去7分鐘的時間 ??
select sysdate,sysdate - interval '7' MINUTE FROM dual;??
當前時間減去7小時的時間 ??
select sysdate,sysdate - interval '7' HOUR FROM dual; ??
當前時間減去7天的時間 ??
select sysdate,sysdate - interval '7' DAY FROM dual; ??
當前時間減去7月的時間 ??
select sysdate,sysdate - interval '7' MONTH FROM dual; ??
當前時間減去7年的時間 ??
select sysdate,sysdate - interval '7' YEAR FROM dual; ??
時間間隔乘以一個數字 ??
select sysdate,sysdate - 8*interval '2' HOUR FROM dual; ??
date類型做減法,單位是天,分別使用*24、*24*60、*24*60*60轉換成時、分、秒
-
1.3 日期和字符串互轉
to_char將日期轉換成字符串
select ? sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') ? from ? dual
to_date將字符串轉成日期
select ? to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') ? from ? dual ??
-
1.4 查看當前數據庫時間
select sysdate from dual;
-
1.5?trunc函數處理日期
trunc(sysdate,'yyyy') --返回當年第一天.
trunc(sysdate,'mm') --返回當月第一天.
trunc(sysdate,'d') --返回當前星期的第一天.
select trunc(sysdate,'YYYY')from dual;
select trunc(sysdate,'MM')from dual;
select trunc(sysdate,'D')from dual;
-
2 JAVA
-
2.1 日期和時間模式字符串
這些A—Z,a—z這些字母(不被單引號包圍的)會被特殊處理替換為對應的日期時間,其他的字符串還是原樣輸出。
日期和時間模式(注意大小寫,代表的含義是不同的)
yyyy:年
MM:月
dd:日
hh:1~12小時制(1-12)
HH:24小時制(0-23)
mm:分
ss:秒
S:毫秒
E:星期幾
D:一年中的第幾天
F:一月中的第幾個星期(會把這個月總共過的天數除以7)
w:一年中的第幾個星期
W:一月中的第幾星期(會根據實際情況來算)
a:上下午標識
k:和HH差不多,表示一天24小時制(1-24)。
K:和hh差不多,表示一天12小時制(0-11)。
-
2.2 JAVA API
菜鳥教程
-
3 JavaScript API
菜鳥教程
4 mysql
4.1 日期格式
說明符 | 描述 |
---|---|
%a | 縮寫的工作日名稱 (?Sun ..?Sat ) |
%b | 縮寫的月份名稱 (?Jan ..?Dec ) |
%c | 月份,數字 (?0 ..?12 ) |
%D | 帶有英文后綴 (?0th ,?1st ,?2nd ,?3rd , ...)的月份中的第幾天 |
%d | 月份中的第幾天,數字 (?00 ..?31 ) |
%e | 月份中的第幾天,數字 (?0 ..?31 ) |
%f | 微秒 (?000000 ..?999999 ) |
%H | 小時 (?00 ..?23 ) |
%h | 小時 (?01 ..?12 ) |
%I | 小時 (?01 ..?12 ) |
%i | 分鐘,數字 (?00 ..?59 ) |
%j | 一年中的某一天 (?001 ..?366 ) |
%k | 小時 (?0 ..?23 ) |
%l | 小時 (?1 ..?12 ) |
%M | 月份名稱 (?January ..?December ) |
%m | 月份,數字 (?00 ..?12 ) |
%p | AM ?或者?PM |
%r | 時間,12 小時制(hh:mm:ss 后跟?AM 或PM ) |
%S | 秒 (?00 ..?59 ) |
%s | 秒 (?00 ..?59 ) |
%T | 時間,24 小時制 (?hh:mm:ss ) |
%U | 周 (?00 ..?53 ),其中星期日是一周的第一天;?WEEK()模式 0 |
%u | 周 (?00 ..?53 ),其中星期一是一周的第一天;?WEEK()模式一 |
%V | 周 (?01 ..?53 ),其中星期日是一周的第一天;?WEEK()模式2;與?%X |
%v | 周 (?01 ..?53 ),其中星期一是一周的第一天;?WEEK()模式3;與?%x |
%W | 工作日名稱 (?Sunday ..?Saturday ) |
%w | 星期幾(0 =星期日..?6 =星期六) |
%X | 周的年份,其中星期日是一周的第一天,數字,四位數字;與%V |
%x | 一周的年份,其中星期一是一周的第一天,數字,四位數字;與%v |
%Y | 年份,數字,四位數字 |
%y | 年份,數字(兩位數) |
%% | 一個文字% 字符 |
% | x , 對于上面未列出的任何?“?x ” |
4.2 日期函數?
名稱 | 描述 |
CURDATE() | 返回當前日期 |
CURRENT_DATE(),?CURRENT_DATE | CURDATE() 的同義詞 |
CURRENT_TIME(),?CURRENT_TIME | CURTIME() 的同義詞 |
CURRENT_TIMESTAMP(),?CURRENT_TIMESTAMP | NOW() 的同義詞 |
CURTIME() | 返回當前時間 |
DATE() | 提取日期或日期時間表達式的日期部分 |
DATE_ADD() | 將時間值(間隔)添加到日期值 |
DATE_FORMAT() | 指定日期格式 |
STR_TO_DATE() | 將字符串轉換為日期 |
更多函數參考MySQL :: MySQL 5.7 Reference Manual :: 12.7 Date and Time Functions?
?