关于日期格式的一次错误记录

前天发了一篇博客 记了一下最近几天用到的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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章