我有关于mysql日期函数的这个问题。
我正在尝试将此月的值与数据库中给定的时间戳进行比较。
例如,今天的月份是6月,时间戳是 1369967316
我正在尝试确定该时间戳是否在6月份。
$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
答案 0 :(得分:4)
这对我有用:
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 |
+---------------------------+