關於日期格式的一次錯誤記錄

前天發了一篇博客 記了一下最近幾天用到的sql,其中where條件中的日期限制寫成了

 (to_char(t.back_in_time,'yyyy-mm-dd') ) <= '2017-03-31'

(現在已經改正)

所以導致了今天一連串的問題,還好沒有影響太多,都怪自己的粗心大意。

那麼下面我們來看關於日期格式的知識


yyyy-MM-dd HH:mm:ss
年-月-日 時:分:秒

大寫是爲了區分“月”與“分”

重要的事情要做成標題並加粗

yyyy-MM-dd HH:mm:ss
年-月-日 時:分:秒
大寫是爲了區分“”與“

順便說下HH爲什麼大寫,是爲了區分12小時制24小時制
小寫的h是12小時制,大寫的H是24小時制。

書寫格式和語言規定有關,上述寫法是Windows系統中的我們常見的寫法,包括日期設置於辦公軟件在內。在其他語言中有類似的但使用符號或格式不同的寫法。

有的時候我們會看到這樣的格式:yyyy-M-d H:m:s
mm與m等,它們的區別爲是否有前導零:H,m,s表示非零開始,HH,mm,ss表示從零開始
比如凌晨1點2分,HH:mm顯示爲01:02,H:m顯示爲1:2

以2014年1月1日凌晨1點1分1秒(當天是星期三)爲例子介紹一下其他的:
yyyy/yyy/yy/y 顯示爲 2014/2014/14/4
(3個y與4個y是一樣的,爲了便於理解多寫成4個y)

MMMM/MMM/MM/M 顯示爲 一月/一月/01/1
(4個M顯示全稱,3個M顯示縮寫,不過中文顯示是一樣的,英文就是January和Jan)

dddd/ddd/dd/d 顯示爲 星期三/週三(有的語言顯示爲“三”)/01/1
(在英文中同M一樣,4個d是全稱,3個是簡稱;
dddd/ddd表示星期幾,dd/d表示幾號)

HH/H/hh/h 顯示爲 01/1/01 AM/1 AM

剩下的mm/m/ss/s只是前導零的問題了。

yyyy/M/d/dddd H:mm:ss 就是 2014年1月1日星期三 1:01:01

大概就是以上內容,摘自網絡。

關於時間戳的事情以後遇到了再提,它的坑相對於這個沒有這麼嚴重。

所以在用日期格式時一定要注意這一點,不然後果不堪設想
最後提一點,在平時的環境中還是建議 用 yyyy-MM-dd HH:mm:ss 或者 yyyy-MM-dd ,就不要亂秀操作了

發佈了83 篇原創文章 · 獲贊 103 · 訪問量 40萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章