我对mysql日期函数有一定的问题。
我试图将这个月的值与数据库中给定的时间戳进行比较。
例如,今天的月份是六月,时间戳是1369967316
我想确定时间戳是否在六月。

$query = db_query("SELECT * FROM users WHERE MONTH(FROM_UNIXTIME(CURDATE())) = MONTH(1369967316)");

//count total members this mont
$members_month = $query->rowCount();

所以如果我使用rowCount,$members_month的值应该是1。
不幸的是它不起作用。
任何帮助都将不胜感激。
嗯,我看到了一些与我相关的答案,但是没有找到,或者我没有很好地应用它。
mysql get month from timestamp not working
how to use curdate() in where clause against unixtimestamp (bigint) column

最佳答案

这对我有效:

mysql> SELECT MONTH(FROM_UNIXTIME(1369967316));
+----------------------------------+
| MONTH(FROM_UNIXTIME(1369967316)) |
+----------------------------------+
|                                5 |
+----------------------------------+

你的问题可能来自于这样一个事实,即1369967316是5月30日,而不是6月(正如你所期望的那样),从而导致了MONTH(CURDATE())的不平等。
mysql> SELECT FROM_UNIXTIME(1369967316);
+---------------------------+
| FROM_UNIXTIME(1369967316) |
+---------------------------+
| 2013-05-30 22:28:36       |
+---------------------------+

关于mysql - MYSQL将时间戳转换为月份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17035854/

10-14 12:53
查看更多