Php MySQL选择datetime为X天前的行
我在数据库中有一个会议时间表表。它有两列,分别名为Php MySQL选择datetime为X天前的行,php,mysql,datetime,Php,Mysql,Datetime,我在数据库中有一个会议时间表表。它有两列,分别名为start和end,由于我无法访问用新数据填充此表的php脚本,因此我不确定它是哪种格式 但是PHPMyAdmin显示start和end的列是varchar(15),所以我想它应该是datetime兼容的 数据库中的示例:1378033200 截至2013年9月1日 我的问题是,我想拉会议,并显示在一个html页面,但我不希望会议超过2天前(服务器时间)显示出来。问题是什么 SELECT * FROM schedules ORDER BY sta
start
和end
,由于我无法访问用新数据填充此表的php脚本,因此我不确定它是哪种格式
但是PHPMyAdmin显示start和end的列是varchar(15)
,所以我想它应该是datetime兼容的
数据库中的示例:1378033200
截至2013年9月1日
我的问题是,我想拉会议,并显示在一个html页面,但我不希望会议超过2天前(服务器时间)显示出来。问题是什么
SELECT * FROM schedules ORDER BY start
差不多
SELECT * FROM schedules ORDER BY start WHERE start > 2 days ago
我试过了,但似乎什么都没用
SELECT *
FROM schedules
WHERE COALESCE(start, 0) < CURDATE() - INTERVAL 2 DAY
ORDER BY start
选择*
从时间表
其中聚结(开始,0)
但是PHPMyAdmin显示开始和结束的列是
varchar(15)所以我想它应该是日期时间兼容的
你猜错了。字符串只能作为字符串排序。这意味着,除非您使用可排序的日期格式(YYYY/MM/DD
是一种格式:我不知道其他格式),否则您必须解析所有结果并使用PHP自己进行计算(否则,2000年11月13日将在2000年1月14日之前)。或者,您可能希望为列使用正确的类型:。完成此操作后,请使用
运算符
对于2天前的部分,您想知道MySql有一个内置变量,可以将其。如果你能正确地设计数据库,你甚至不必接触PHP(这是一件必须的事情)。试试这个:
SELECT *
FROM schedules
WHERE COALESCE(start, 0) < DATE_SUB(NOW(), INTERVAL 2 DAYS)
ORDER BY start
选择*
从时间表
其中COALESCE(开始,0)
我自己的解决方案错了,我想你的也错了。@Saeid87你认为呢?你试过我的解决方案吗?