【发布时间】:2017-04-24 22:31:46
【问题描述】:
所以我想做的是从日期中减去周数,很简单,对吧?
但是,查询返回一个我相信的字符串,因为无论我如何尝试对其进行排序,它仍然按以下顺序排序:0、1、10、11、12、... 19、2、21
当然我已经用谷歌搜索过了,我已经尝试过 CAST AS SIGNED/UNSIGNED/INT/DECIMAL。我确实尝试格式化它,乘以一,结果加零 - 没有任何反应。
我在 BIRT 中使用我的查询 - 因为我已设法在 BIRT 表中对其进行排序,但它仍然在 Workbench 和 BIRT 图表中被打乱 - 这让它们看起来像无稽之谈。
现在,当我写这篇文章时,我发现问题在于我有 CASE:
SELECT CASE WHEN 2 = 1 THEN SUBSTR(mydate, 1, 7) ELSE CAST(WEEK(mydate, 0) AS SIGNED) END AS 'data' FROM mytable
仍然:为什么 CAST 与可能返回字符串的 CASE 一起使用时不起作用?我想有条件地让用户选择数据是按 YYYY-MM(年和月)还是按周分组,现在看来我有点卡住了。
【问题讨论】:
标签: mysql casting type-conversion data-conversion