在平时对于数据库操作中,有时候会使用到时间,比如-数据的创建时间/更新时间之类问题,可能是需要查询出时间的结果,也存在大量的需要搜索某个时间点或时间段的操作;
MySQL中取本地时间
now() 取本地的时间,精确到秒
CURDATE() 精确到天
CURTIME()仅取今天的时分秒
当需要作为实时的搜索条件时,可以直接跟WHERE条件后直接食用
这里介绍一下自定义式的时间格式化方式
DATE_FORMAT(时间,'时间格式')
这个方法会将前面的时间按照你后面的格式进行格式化处理
这里贴一下我从其他大佬哪里粘过来的(附上了大佬的帖子链接)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59) %s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天 %% 一个文字“%”。
--------------------- 来自 zzzgd_666 的CSDN 博客全文地址请点击:https://blog.csdn.net/zzzgd_666/article/details/80594087?utm_source=copy
这里存在一个问题,就是如果你将格式的时间直接作为条件取搜索,很可能是无法搜索出你想要的数据的(使用=条件触发概率更大),因为,在数据库中,我们很多情况下存储的时间都是精确到秒的,格式化的时间与数据库中数据时间未做到一致,导致无法搜索到数据;
解决方法1:格式化两个时间,一个是你的搜索条件(我这里是取本机时间NOW),一个是你需要搜索的时间字段也做一个相同的时间格式,然后将这两个作为你的比对条件即可解决问题;
---------------------
作者:不徒手而亡
来源:CSDN
原文:https://blog.csdn.net/qq_40234946/article/details/82889270
版权声明:本文为博主原创文章,转载请附上博文链接!