oracle時間日付処理
3015 ワード
日付処理
日付タイプ DATE日付タイプで、含まれる時間部分には年、月、日、時、分、秒があり、秒の小数ビットとタイムゾーンは含まれません.正当なデータ範囲はJanuary 1,4712 BC,to December 31,9999 ADである.デフォルトのフォーマットはNLS_DATE_FORMAT表示で設定またはNLS_経由TERITORYは暗黙的に設定されています.データサイズは固定された7ビットです. TIMESTAMP[(fractional_seconds_precision)]タイムスタンプタイプ.年、月、日、時、分、秒が含まれ、秒は精度を持つことができ、精度範囲は0~9ビット、デフォルトの精度は6ビットで、タイムゾーンはありません.デフォルトのフォーマットはNLS_TIMESTAMP_FORMATパラメータ表示指定またはNLS_経由TERITORYパラメータは暗黙的に指定します.データのサイズは7-11ビットで、具体的なサイズは設定の精度に依存します. TIMESTAMP[(fractional_seconds_precision)]WITH TIME ZONEにタイムゾーンのタイムスタンプタイプがあります. TIMESTAMP[(fractional_seconds_precision)]WITH LOCAL TIME ZONEタイムゾーン付きタイムスタンプタイプ. INTERVAL YEAR[(year_precision)]TO MONTHは、年月のある期間を格納します. INTERVAL DAY[(day_precision)]TO SECOND[(fractional_seconds_precision)]は、日、時、分、秒の時間期間を格納します.
日付関数 TO_CHAR(datetime,fmt)は日付がフォーマットされ、戻りタイプはVARCHR 2である.datetimeが入力した日付、fmtは変換のフォーマットを表します. TO_DATE(char,fmt)文字列は日付を回転し、戻りタイプはDATEである.charは入力された日付文字列であり、fmtは変換のフォーマットを表す. SYSTATEは、システムの現在の時刻を返します.タイプはDATEです. TRUNC(datetime,fmt)は、指定されたフォーマットで時間を切り取り、戻りタイプがDATEである. LAST_DAY(date)は、システムの当月の最終日の日付を返します.タイプはDATEです.
日付演算日付タイプについては、加算および減算を実行できます.乗算および除算は実行できません. 時間タイプのデータはINTERVALとNumericタイプのデータと加算することができ、結果は時間タイプである. DateタイプとDateタイプはNumberに減算され、差分日数を表し、DateタイプとtimestampタイプはINTERVAL、INTERVAL、NumericはDateに減算されます. ORACLEはtimestampを自動的にdateタイプの値に変換し、Numberタイプの定数を算術の日付に変換し、間隔式は日数を表す.例えば、SYSDATE+1は明日の日付を表します.SYSDATE-7は1週間前を示します.SYSDATE+(10/(24*60))は、10分後の時間を表します. 取得月の差
リファレンス
https://docs.oracle.com/en/database/
転載先:https://www.cnblogs.com/ZiYangZhou/p/8146636.html
日付タイプ
日付関数
SELECT to_char(sysdate,'yyyy-mm-dd') FROM dual;
select to_char(sysdate,'dy') from dual; #
SELECT to_date('2017-09-13','yyyy-mm-dd') FROM dual;
SELECT to_char(TO_DATE('7','dd'),'yyyy-mm-dd')FROM dual;
# 2017-09-13 11:30:32
SELECT TO_CHAR(TRUNC(SYSDATE,'hh'),'yyyy-mm-dd hh24:mi:ss') FROM DUAL; #2017-09-13 11:00:00
SELECT TO_CHAR(TRUNC(SYSDATE,'yy'),'yyyy-mm-dd hh24:mi:ss') FROM DUAL; #2017-01-01 00:00:00
SELECT TO_CHAR(TRUNC(SYSDATE,'mm'),'yyyy-mm-dd hh24:mi:ss') FROM DUAL; #2017-09-01 00:00:00
SELECT TO_CHAR(TRUNC(SYSDATE,'mi'),'yyyy-mm-dd hh24:mi:ss') FROM DUAL; #2017-09-13 11:30:00
SELECT LAST_DAY(SYSDATE) from DUAL;
日付演算
/**
,
*/
SELECT (TO_DATE('2017-9-10 12:23:12','yyyy-mm-dd hh24:mi:ss') - TO_DATE('2017-9-10 10:23:12','yyyy-mm-dd hh24:mi:ss')) * 24 FROM DUAL;
select months_between(to_date('2017-12-30','yyyy-mm-dd'),to_date('2017-01-01','yyyy-mm-dd')) from dual;
リファレンス
https://docs.oracle.com/en/database/
転載先:https://www.cnblogs.com/ZiYangZhou/p/8146636.html