[英]Can I use 'AS' in 'BETWEEN' statement in MySQL?
Can I use as
in BETWEEN
statement in mysql or something alike. 我可以用
as
在BETWEEN
在MySQL或东西都声明。
SELECT * FROM status WHERE date BETWEEN CONVERT_TZ('2013-11-01 00:00:00','GMT','UTC') AND CONVERT_TZ('2013-11-07 23:59:59','GMT','UTC') AS firstweek AND date BETWEEN CONVERT_TZ('2013-11-08 00:00:00','GMT','UTC') AND CONVERT_TZ('2013-11-15 23:59:59','GMT','UTC') AS secondweek AND date BETWEEN CONVERT_TZ('2013-11-16 00:00:00','GMT','UTC') AND CONVERT_TZ('2013-11-22 23:59:59','GMT','UTC') AS secondweek ORDER BY date DESC
I'm getting a syntax error.How can use an alias using BETWEEN
? 我遇到语法错误。如何使用
BETWEEN
使用别名? Is there other way for naming each week, this will serve as my identifier. 每周还有其他命名方法吗,它将用作我的标识符。
You're putting an alias to the expression, not selected columns 您要为表达式添加别名,而不是选定的列
You should make ir like this: 您应该这样使ir:
SELECT t.* FROM
(SELECT s.*, CONVERT(...) as field1, CONVERT(...) as field2 from status) t
...then do what you want with fieldsXX...
You could try 你可以试试
SELECT * FROM date JOIN
(SELECT CONVERT_TZ('2013-11-01 00:00:00','GMT','UTC') AS w1start,
CONVERT_TZ('2013-11-07 23:59:59','GMT','UTC') AS w1end,
CONVERT_TZ('2013-11-08 00:00:00','GMT','UTC') AS w2start,
CONVERT_TZ('2013-11-15 23:59:59','GMT','UTC') AS w2end,
CONVERT_TZ('2013-11-16 00:00:00','GMT','UTC') AS w3start,
CONVERT_TZ('2013-11-22 23:59:59','GMT','UTC') AS w3end) AS weeks
WHERE date BETWEEN w1start AND w1end
OR date BETWEEN w2start AND w2end
OR date BETWEEN w3start AND w3end
ORDER BY date DESC
This is at least a start. 这至少是一个开始。
If, however, you want to tell the application which of the 3 conditions is fulfilled, yiu might want to do 但是,如果您想告诉应用程序满足3个条件中的哪一个,则yiu可能想做
SELECT date BETWEEN w1start AND w1end AS firstweek,
date BETWEEN w2start AND w2end AS secondweek,
date BETWEEN w3start AND w3end AS thirdweek,
whatevercolumsyouneed
FROM date JOIN
(SELECT CONVERT_TZ('2013-11-01 00:00:00','GMT','UTC') AS w1start,
CONVERT_TZ('2013-11-07 23:59:59','GMT','UTC') AS w1end,
CONVERT_TZ('2013-11-08 00:00:00','GMT','UTC') AS w2start,
CONVERT_TZ('2013-11-15 23:59:59','GMT','UTC') AS w2end,
CONVERT_TZ('2013-11-16 00:00:00','GMT','UTC') AS w3start,
CONVERT_TZ('2013-11-22 23:59:59','GMT','UTC') AS w3end) AS weeks
HAVING firstweek OR secondweek OR thirdweek
ORDER BY date DESC
(untested; I am not sure if HAVING
is placed correctly.) (未测试;我不确定是否正确放置了
HAVING
。)
You're using AS
in the WHERE
clause. 您在
WHERE
子句中使用AS
。 It can only be used in the column list and in the FROM
clause. 它只能在列列表和
FROM
子句中使用。
SELECT a.somefield AS s, someexpr AS e
FROM table1 AS a, ...
WHERE ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.