Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MYSQL按发布日期和时间戳排序_Php_Mysql_Date_Timestamp - Fatal编程技术网

Php MYSQL按发布日期和时间戳排序

Php MYSQL按发布日期和时间戳排序,php,mysql,date,timestamp,Php,Mysql,Date,Timestamp,我试图使用php和mysql根据新闻文章的发布日期和时间戳列出新闻。我需要列出所有文章的最新出版日期和最近的时间戳。当我试图完成这项工作时,列表中出现了一些异常情况 需要注意的是,一些新闻文章的时间戳可能是今天,但发布日期可能是从现在开始的10天 SELECT * FROM table_news WHERE pubdate <= ".time()." ORDER BY pubdate,date DESC SELECT * FROM table_news WHERE pubdate <

我试图使用php和mysql根据新闻文章的发布日期和时间戳列出新闻。我需要列出所有文章的最新出版日期和最近的时间戳。当我试图完成这项工作时,列表中出现了一些异常情况

需要注意的是,一些新闻文章的时间戳可能是今天,但发布日期可能是从现在开始的10天

SELECT * FROM table_news WHERE pubdate <= ".time()." ORDER BY pubdate,date DESC

SELECT * FROM table_news WHERE pubdate <= ".time()." ORDER BY date,pubdate DESC

SELECT * FROM table_news WHERE pubdate <= ".time()." ORDER BY pubdate,date ASC

SELECT * FROM table_news WHERE pubdate <= ".time()." ORDER BY date,pubdate ASC

SELECT*FROM table_news WHERE pubdate
SELECT*FROM table_news WHERE pubdate
SELECT*FROM table_news WHERE pubdate您的
pubdate
字段是unix时间映射(例如整数字段)还是实际的mysql日期/时间字段
time()
返回unix时间戳,而不是日期/时间字符串。改用这个:

SELECT *
FROM table_news
WHERE pubdate <= now()
ORDER BY pubdate DESC, date DESC
选择*
来自table_新闻

其中pubdate您的
pubdate
字段是unix时间映射(例如整数字段)还是实际的mysql日期/时间字段
time()
返回unix时间戳,而不是日期/时间字符串。改用这个:

SELECT *
FROM table_news
WHERE pubdate <= now()
ORDER BY pubdate DESC, date DESC
选择*
来自table_新闻

其中pubdate您需要在查询字符串中使用MySQL格式的日期。试一试

SELECT NOW();
查看MySQL格式的日期是什么样子。您可能希望在查询中直接使用NOW()函数,而不是使用PHP time()函数

SELECT * FROM table_news WHERE pubdate <= NOW() ORDER BY ...

SELECT*FROM table_news,其中pubdate需要在查询字符串中使用MySQL格式的日期。试一试

SELECT NOW();
查看MySQL格式的日期是什么样子。您可能希望在查询中直接使用NOW()函数,而不是使用PHP time()函数

SELECT * FROM table_news WHERE pubdate <= NOW() ORDER BY ...

SELECT*FROM table_news WHERE pubdate我在这里猜测,但我想我知道您希望
按顺序执行的操作

当按两列排序时,不会得到最新和最新的条目,而是会得到按该ORDER by子句中第一列排序的所有条目,并且只有当两行的值相同时,这两行才会按第二列排序

如果这能按预期工作,您可以尝试:

选择*
来自table_新闻

我猜这里是pubdate的位置,但我想我知道您期望的是什么

当按两列排序时,不会得到最新和最新的条目,而是会得到按该ORDER by子句中第一列排序的所有条目,并且只有当两行的值相同时,这两行才会按第二列排序

如果这能按预期工作,您可以尝试:

选择*
来自table_新闻

其中pubdate是的,它是一个unix时间戳。我不知道我可以选择分开订购。现在试试这个!是的,这是一个unix时间戳。我不知道我可以选择分开订购。现在试试这个!