doubu7425 2013-11-07 06:44
浏览 35
已采纳

我可以在MySQL的'BETWEEN'语句中使用'AS'吗?

Can I use as in BETWEEN statement in mysql or something alike.

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? Is there other way for naming each week, this will serve as my identifier.

  • 写回答

3条回答 默认 最新

  • dongyu3967 2013-11-07 06:56
    关注

    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

    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.)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100