我有一个表,其中包含一列(created
(,该列在创建该项时存储unix时间戳。
现在,我想COUNT()
在工作日(星期一到星期五(创建的所有项目,而不是在工作周(星期六和星期日(创建的项目。
我的问题是:
SELECT
IF (WEEKDAY(FROM_UNIXTIME(`created`)) >= 0 AND WEEKDAY(FROM_UNIXTIME(`created`)) >= 4) THEN COUNT(*) AS `weekday`,
IF (WEEKDAY(FROM_UNIXTIME(`created`)) <= 5) THEN COUNT(*) AS `weekend`
FROM `mytable`
但我得到的错误是
#1064-您的SQL语法出现错误;查看与MySQL服务器版本相对应的手册,了解在'(THEN COUNT(*(,IF(WEEKDAY(FROM_UNIXTIME(
created
((<=附近使用的正确语法5( 然后在第3行计数(*('
非常感谢您的帮助。
您似乎没有使用正确的语法。http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if
引用自上述网址,
IF(expr1,expr2,expr3(
如果expr1为TRUE(expr1<>0和expr1&lgt;>NULL(,则If((返回expr2;否则返回expr3。IF((返回一个数值或字符串值,具体取决于使用它的上下文&";。
,我相信这将是您查询的正确表格
SELECT
DATE(FROM_UNIXTIME(`created`)) AS `date`,
IF (WEEKDAY(FROM_UNIXTIME(`created`)) >= 0 AND WEEKDAY(FROM_UNIXTIME(`created`)) <= 4, COUNT(*), 0), --WeekDay Count
IF (WEEKDAY(FROM_UNIXTIME(`created`)) >= 5 AND WEEKDAY(FROM_UNIXTIME(`created`)) <= 6, COUNT(*), 0) --Weekend Count
来自mytable
我已经找到了这个链接以及工作日功能。这让我相信你的范围一开始就不正确。
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_weekday