SQL日付時刻型の処理

SQLの日付(日付)2019年10月17日午前22時17分26秒

        我々は、日付を扱う場合には、おそらく最も困難な日付形式が挿入されることを保証するタスク、およびデータベースの試合で日付列の形式です。

        日付が一部保存されている場合、クエリはあまり問題になることはありません。それは時間を部分に来る場合でも、状況は少し複雑です。

        ここでは、組み込みの日付処理機能を見てみましょう


SQL Serverの日付関数

ここでは、SQL Serverの中で最も重要な組み込みの日付関数は、次のとおりです。

1、GETDATE()は、現在の日付と時刻を返します

     構文:

GETDATE()

     以下は、SELECT文です。

日時AS GETDATE()を選択

      結果は以下の通りであります:

 

 

 注:ミリ秒以上の時間。

 

 2、DATEPARTは()日付/時刻の別々の部分を返します

      構文:

DATEPART(日付要素、日付)

日付パラメータは、有効な日付式です。DATEPARTパラメータは、次の値であってもよいです。

DATEPART 略語
YY、YYYY
四半期 QQは、Q
うーん
当日に 家、
DD、D
週、WW
ワット、DW
時間 HH
私のn
第2 SS、S
ミリ秒 ミズ
マイクロ秒 MCS
NS NS

 

 

 

 

 

 

 

 

 

 

 

 

      例:

選択DATEPART(YY、GETDATE());

 

 

 

3、DATEADD()日付指定された時間間隔を加算または減算します

      構文:

DATEADD(日付要素、数字、日付)

 

日付パラメータは、有効な日付式です。番号は、追加したい間隔の数であり、将来の日付のため、数が正の数で、最後の時間のために、番号が否定的です。

上記のパラメータと一致したdatepartパラメータ値、と私はコピーされません

      例:

DATEADDを選択します(日、30、GETDATE());

      結果:

 

 

 

 

4、DATEDIFF()は、2つの日付の間の時間を返します。

      構文:

DATEDIFF(DATEPART、STARTDATE、終了日)
STARTDATE引数が正当とENDDATE日付式です。同様に上記の日付要素のパラメータ

例:
DATEDIFF(日、「2019年10月17日」、「2020年1月24日」)を選択します。

       結果:

 

5、CONVART()は、異なる形式の日付/時刻データを表示します

       構文:

CONVERT(DATA_TYPE(長さ)、表現、スタイル)
説明
DATA_TYPE(長さ) (オプションの長さ)が所定のターゲット・データ・タイプ。
表します 規定値を変換する必要があります。
スタイル 出力形式の所定の日付/時間

       

 

 

 

次の表は、文字データにスタイル値のdatetime型またはsmalldatetime型の変換を示しています。

 値(世紀YY)  値(世紀YYYY) 入力/出力   標準
 -  0または100  月のDD YYYYのHH:miAM(またはPM)  デフォルト
 1  101  MM / DD / YY  米国
 2  102  YY.MM.DD  ANSI
 3  103 DD / MM / YY  英/仏 
 4  104  DD.MM.YY  ドイツ人 
 5  105  DD-MM-YY  ltalian 
 6  106  DDの月のYY   
 7  107  月のDD、YY   
 8  108  HH:mm:ssの   
 -  9または109   月のDD YYYYのHH:MI:SS:mmmAM(またはPM)  デフォルト+ミリ秒 
 10  110   MM-DD-YY  米国 
 11  111  YY / MM / DD  日本 
 12  112  YYMMDD  ISO 
 -  13または113  DD月のYYYYのHH:MI:SS:MMM(24時間)   
 14  114  HH:MI:SS:MMM(24時間)  
 - 20または120  YYYY-MM-DD HH:MI:SS(24時間)   
 - 21,121  YYYY-MM-DD HH:MI:ss.mmm(24時間)   
 -  126 YYYY-MM-DD T HH:MI:ss.mmm(スペースなし) ISO8601 
 -  130  DD月のYYYYのHH:MI:SS:mmmAM 聖 
 - 131  DD / MM / YY HH:MI:SS:mmmAM  聖 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

         例:

     次のスクリプトは、異なるフォーマットを表示するためにCONVERT()関数を使用します。現在の日付/時刻を取得するために、GETDATE()関数を使用します

CONVERTVARCHAR19)、GETDATE ())
 CONVERTVARCHAR10)、GETDATE()、10 CONVERTVARCHAR10)、GETDATE()、110 CONVERTVARCHAR11)、GETDATE()、6 CONVERTVARCHAR11)、GETDATE()、106 CONVERTVARCHAR24)、GETDATE()、113

   

結果は以下の通りであります:

11月04  2011年 1145 PM
 11 - 04 - 11 
11 - 04 - 2011年
04 11月11 
04 11月2011年
04 11月2011年 114534243

 


 

 

PostgreSQLの日付/時刻関数と演算子

時間内の特定postgreでは​​、オペレータは、基本的な数プラス+、減算を実行することができる - また乗算* /操作

日付/時刻演算子

演算子 結果
+ 選択日付「2019年10月18日」+整数「7」 日付「2019年10月25日」
+ 選択日付「2019年10月18日」+間隔「1時間」 タイムスタンプ「2019年10月18日1時00分00秒」
+ select date '2019-10-18' + time '03:00' timestamp '2019-10-18 03:00:00'
+ select interval '1 day' + interval '1 hour' interval '1 day 01:00:00'
+ select timestamp '2019-10-18 01:00' + interval '23 hours' timestamp '2019-10-19 00:00:00'
+ select time '01:00' + interval '3 hours' time '04:00:00'
- - interval '23 hours' interval -23:00:00
- select date '2019-10-18' - date '2019-10-15' intrger 3(days)
- select date '2019-10-18' - integer '7' date '2019-10-11'
- date '2001-09-28' - interval '1 hour' timestamp '2019-10-17 23:00:00'
- time '05:00' - time '03:00' interval '02:00:00'
- time '05:00' - interval '2 hours' time '03:00:00'
- 選択したタイムスタンプ「2019年10月18日23:00」 - 間隔'23時間の タイムスタンプ「2019年10月18日午後12時00分00秒」
- 間隔「1時間」 - 間隔「1日」を選択 間隔 '1日-01:00:00'
- タイムスタンプ「2001年9月29日3時00分」 - タイムスタンプ「2001年9月27日午前12時00分」 間隔「2日夜03時00分00秒」
* 900 *間隔 '1秒' 間隔'00:15:00'
* 21 *期間「1日」を選択 間隔'21日間の
* 倍精度「3.5」*間隔「1時間」を選択 間隔'03:30:00'
/ 間隔「1時間」/倍精度「1.5」 間隔'00:40:00'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

日付/時刻関数

 機能  戻り値の型  説明  例 結果 
 年齢(タイムスタンプ、  タイムスタンプ  間隔 パラメータを減算した後、年と月使用して、スペースだけではなく、使用した結果の「シンボル」  select age(timestamp '2019-10-18', timestamp '1998-07-31')  "21 years 2 mons 18 days"
 age(timestamp)  interval  从current_date减去参数后的结果(在午夜)  select age(timestamp '1998-07-31')  "21 years 2 mons 18 days"
clock_timestamp()  timestamp with time zone  实时时钟的当前时间戳(在语句执行时变化)  select clock_timestamp()  "2019-10-18 21:47:03.880667+08"
current_date  date  当前的日期;  select current_date  "2019-10-18"
current_time time with time zone 当前的时间;  select current_time "21:50:35.168911+08:00"
current_timestamp  timestamp with time zone  当前事务开始时的时间戳; select current_timestamp  "2019-10-18 21:49:17.912353+08"
 date_part(texttimestamp)  double precision  获取子域(等效于extract);  date_part('hour', timestamp '2001-02-16 20:38:40')  22
 date_part(textinterval)  double precision  获取子域(等效于extract);  date_part('month', interval '2 years 3 months')  3
 date_trunc(texttimestamp)  timestamp  截断成指定的精度;  select date_trunc('hour', timestamp '2019-10-18 22:55:40') "2019-10-18 22:00:00"
 date_trunc(textinterval)  interval  截取指定的精度,  date_trunc('hour', interval '2 days 3 hours 40 minutes')  "2 days 03:00:00"
 extract(field from timestamp)  double precision  获取子域; select extract(hour from timestamp '2019-10-18 22:58:40')  "22"
 extract(field from interval)  double precision  获取子域;  select extract(month from interval '2 years 3 months')  "3"
 isfinite(date)  boolean  测试是否为有穷日期(不是 +/-无穷)  select isfinite(date '2019-10-18')  true
 isfinite(timestamp)  boolean  测试是否为有穷时间戳(不是 +/-无穷)  select isfinite(timestamp '2001-02-16 21:28:30')  true
 isfinite(interval)  boolean  测试是否为有穷时间间隔  select isfinite(interval '4 hours')  true
 justify_days(interval)  interval  按照每月 30 天调整时间间隔  select justify_days(interval '35 days')  "1 mon 5 days"
 justify_hours(interval)  interval  按照每天 24 小时调整时间间隔  select justify_hours(interval '27 hours')  "1 day 03:00:00"
 justify_interval(interval)  interval  使用justify_daysjustify_hours调整时间间隔的同时进行正负号调整  select justify_interval(interval '1 mon -1 hour')  "29 days 23:00:00"
 localtime  time  当日时间;   select localtime  "22:29:47.906458"
 localtimestamp  timestamp  当前事务开始时的时间戳;  select localtimestamp  "2019-10-18 22:30:51.573436"
make_date(year intmonth intday int) date 为年、月和日字段创建日期 make_date(2013, 7, 15) 2013-07-15
now() timestamp with time zone 当前事务开始时的时间戳; select now() "2019-10-18 22:33:19.559465+08"
statement_timestamp()
timestamp with time zone
实时时钟的当前时间戳; statement_timestamp() "2019-10-18 22:34:50.077578+08"
timeofday() text clock_timestamp相同,但结果是一个text 字符串; select timeofday() "Fri Oct 18 22:35:41.196317 2019 HKT"
transaction_timestamp() timestamp with time zone 当前事务开始时的时间戳; select transaction_timestamp() "2019-10-18 22:36:42.310184+08"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

おすすめ

転載: www.cnblogs.com/ljknlb/p/11695359.html
おすすめ