5

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

我需要的是这样返回的日期:

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

谁能指出我哪里出错了?

4

2 回答 2

12

您需要先将时间戳转换回日期,然后才能应用该MONTH()功能。

MONTH(mdl_quiz_grades.timemodified)

变成

MONTH(FROM_UNIXTIME(mdl_quiz_grades.timemodified))

在此处阅读更多相关信息。

作为旁注,int时间戳就足够了,bigint没有必要。时间戳是一个 32 位数字,这就是为什么它可以保存 2038 年 1 月 19 日的最大日期。

于 2013-04-18T14:48:26.173 回答
-1
"SELECT count(*) as records FROM sms WHERE MONTH(tarih)=MONTH(NOW()) and ceptel='"&ceptel&"'"
于 2015-04-10T05:22:12.643 回答