这就是坑,别信这些代码,它们可能导致安全漏洞。

MySQL中的日期时间类型与格式化方式总结

那天在咖啡厅,看着对面桌的哥们儿在电脑上敲代码,我忽然想到,数据库里的日期时间类型,就像是生活中各种时间节点,每个都有它独特的存在意义。

比如,我最近去了一趟北京,那日期就是DATE类型,只记录了那天的日期,没有具体时间。
而我那天从早到晚都在外面,那时间就变成了TIME类型,记录了我活动的每一个时间点。

那天我还去了一家新开的餐厅,点了道特别好吃的菜,我等了2 0分钟,这2 0分钟就对应了DATETIME类型,既有日期也有具体的时间。

我还记得那天我手机上的时间,显示的是2 01 9 年1 2 月3 1 日2 3 :5 9 :5 9 ,那是YEAR和TIMESTAMP类型的结合,记录了年份和具体的时间戳。

我想,数据库里的这些时间类型,就像是我们生活中的时间记录,各有各的用处,用对了,生活和工作才能井井有条。
等等,还有个事,我记得上次看一本关于数据库的书,里面提到,TIMESTAMP类型在创建或修改记录时会自动更新为当前时间,这就像是生活中的“现在”,永远在变化。

mysql有to?char函数吗

哎,我当时也懵,看着那个SQL查询,我那会儿就想,MySQL咋没个TO_CHAR呢?后来我一想,嘿,这也不难,DATE_FORMAT这不就是干这个的嘛。
比如我有个日期字段叫date_field,我想弄成'yyyymmddHH2 4 :mi:ss'那种格式,我就这么写:
sql DATE_FORMAT(date_field, '%Y%m%d%H:%i:%s')
这玩意儿一看就明白,date_field是你那个日期字段,后面的那串符号'%Y%m%d%H:%i:%s'就是告诉你,我要输出的格式是年月日时分秒,年用四位表示,月日时分秒都用两位,还分开了小时和分钟,挺细心的。

不过啊,这玩意儿得看文档,不是每个数据库都这么玩。
我后来才反应过来,得查查MySQL的官方文档,看看有没有什么高级用法,或者万一我偏激了呢,对吧?然后我得注意,不同的数据库系统,函数和语法可能会有点不一样,这得特别注意,不然写出来的SQL就跑不起来了。