天天看點

PostgreSQL ISO 8601

國際标準化組織的國際标準ISO 8601是日期和時間的表示方法,全稱為《資料存儲和交換形式·資訊交換·日期和時間的表示方法》。目前最新為第三版ISO8601:2004,第一版為ISO8601:1988,第二版為ISO8601:2000。(摘自百度百科)

select cast('2018-08-05T11:00:00Z' as timestamp), --标準時間
	cast('2018-08-05T11:00:00+8' as timestamptz),--東八區,自動轉換為pg本地日期時間
	cast('2018-08-05T11:00:00-8' as timestamptz),--西八區,自動轉換為pg本地日期時間
	cast('1970-01-01' as date),			--日期無需時區
	cast('11:00:00' as time),			--不帶時區
	cast('11:00:00+8' as timetz),		--東八區時間
	cast('11:00:00-8' as timetz),		--西八區時間
	cast('P1Y3M15DT16H30M15S' as interval),	--1年間隔3個月15天16小時30分鐘15秒
	cast('P3M15DT16H30M15S' as interval),	--間隔3個月15天16小時30分鐘15秒
	cast('P3M' as interval),	--3個月,M在P後表示月
	cast('3M' as interval),	--3分鐘,如果沒有P和M,預設為分鐘,M的含義取決于它出現在T之前還是之後
	cast('PT3M' as interval)	--3分鐘,如果沒有P和M,預設為分鐘,M的含義取決于它出現在T之前還是之後
           

ISO 8601 間隔機關縮寫

該串必須以一個P開始,并且可以包括一個引入當日時間機關的T。機關可以被忽略,并且可以以任何順序指定,但是小于一天的機關必須出現在T之後。M的含義取決于它出現在T之前還是之後。

縮寫 含義
Y
M 月(在日期部分中)
W
D
H 小時
M 分鐘 (在時間部分中)
S

間隔機關書寫規範建議

以P開始并且包含T分隔符,以避免差生岐義。

select cast('P3MT2M' as interval),cast('PT3M' as interval); --一看到就知道
select cast('3M' as interval); --????
select cast('P3M' as interval); --????
           

繼續閱讀