php 使用MySQL中的where子句以及按日期和时间列出的不同列检索已过期的记录

myss37ts  于 2023-01-12  发布在  PHP
关注(0)|答案(1)|浏览(122)

这是我当前的mysql表
| 身份证|姓名|失效日期|到期时间|
| - ------|- ------|- ------|- ------|
| 1个|样品1|二○二三年一月九日|上午11时|
| 第二章|样品2|二○二三年一月九日|下午三点|
| 三个|样品3|二○二三年一月八日|晚上十点|
质询:

select * 
from table 
where STR_TO_DATE(table.expiry_date, '%d-%m-%Y') < '2023-01-09' 
   OR (DATE_FORMAT(concat(table.expiry_date,' ',table.expiry_time),'%d-%m-%Y %g:%i %A') <= NOW()))

我还希望获得截至目前已过时的记录。
如何做到这一点?

wtlkbnrh

wtlkbnrh1#

您可以使用STR_TO_DATE转换您的varchar日期,如下所示:

select *
from _table
WHERE STR_TO_DATE(concat(_table.expiry_date,' ',_table.expiry_time), '%d-%m-%Y %h:%i %p') <= now();

您可以在这里查看:https://dbfiddle.uk/emR4cg3s

相关问题