mysql从timestamp获取月份不起作用

时间:2013-04-18 14:23:24

标签: mysql timestamp

我有一个查询从数据库中提取正确的数据,但它不会从时间戳返回给我一个月。在timestamp列中,我得到一个空值,即使时间戳存在。 它作为一个bigInt存储在DB中(这不是我的想法)。

我需要的是这样的日期:

Course |  fcpd   |   Month
216    0.5         04

但我明白了:

Course |  fcpd   |   Month
216    0.5        null

SELECT mdl_quiz.course, mdl_quiz.fcpd, MONTH(mdl_quiz_grades.timemodified) as Month FROM mdl_quiz INNER JOIN mdl_quiz_grades ON mdl_quiz.course = mdl_quiz_grades.quiz WHERE mdl_quiz_grades.userid = 9428 AND mdl_quiz.course = 215

有人能指出我哪里出错吗?

2 个答案:

答案 0 :(得分:10)

在应用MONTH()功能之前,您需要先将时间戳转换回日期。

MONTH(mdl_quiz_grades.timemodified)

变为

MONTH(FROM_UNIXTIME(mdl_quiz_grades.timemodified))

详细了解here

作为旁注,int足以用于时间戳,bigint不是必需的。时间戳是一个32位数字,这就是为什么它可以保持2038年1月19日的最长日期。

答案 1 :(得分:-1)

"SELECT count(*) as records FROM sms WHERE MONTH(tarih)=MONTH(NOW()) and ceptel='"&ceptel&"'"