提示:本文共有 660 个字,阅读大概需要 2 分钟。
最近做一个项目需要精确地按照具体几点几分来检索数据库中的记录,我平常都是使用laravel数据库迁移中默认的timestamp来记录时间的,即created at和updated at的数据类型都是timestamp。
遇到这个需求我想当然的采用下面的这种方式来检索
Model::wherecreated at, , 2020 01 01 12:35:06 get;
然后发现这个检索只精确到日,会直接抛弃后面的时分秒,显然不满足我的需求。
于是我找到文档,发现里面有whereDate和whereTime,于是我自作聪明的组合起来,也就成了这样
Model::whereDatecreated at, , 2020 01 01 whereTimecreated at, , 12:35:06 get;
然后发现结果也不对,这里解析出来的结果是日期大于2020 01 01且时间大于12:35:06,并不是我要的日期时间大于2020 01 01 12:35:06
后来我就发了一个来询问这个问题,得到的答案跟我一开始想的一样,但是我却得不到这样的结果。
这时候我加了个群,想着找个人聊聊吧,还真找到了,在群里得知,timestamp有坑,得换成datetime,我试了下,果然,苍天啊,我要的结果终于出现了。
我也不知道laravel为什么要用timestamp,不知道替换成datetime是不是最好的答案,不过问题暂时解决了,写这一篇文章给后面有需要的人提供一个解决方案吧,如果有大神知道这里面的蹊跷,希望能帮忙解释下。
看到此处说明本文对你还是有帮助的,关于“记一次关于 timestamp 无法检索时分秒的排坑记录 Laravel China 社区”留言是大家的经验之谈相信也会对你有益,推荐继续阅读下面的相关内容,与本文相关度极高!