获得截然不同的当前和列类型varchar()的未来周数和年

时间:2018-05-16 00:36:56

标签: mysql sql mariadb

我的列号为booking_week,格式为WEEKNO-YEAR,例如20-2018。列还包含将来的周01-201920-2019

我需要明确的当前&列表未来几周,所以我使用下面的查询,但它只返回我今年。有没有办法让所有未来几周?

SELECT DISTINCT(booking_week) as booking_weeks_list 
from bookings 
where booking_week >= date('W-Y', time())

我确实有一个列有预订日期的时间戳,但我不知道这是否有帮助?

1 个答案:

答案 0 :(得分:1)

我假设date('W-Y', time())返回当前周/年。我不知道它来自哪个数据库,但基本上你想要这样做:

select distinct booking_week as booking_weeks_list 
from bookings 
where right(booking_week, 4) || '-' || left(booking_week, 2) >= date('Y-W', time())

关于解决方案的说明:

  • 并非所有数据库都支持left()right()。可以使用substr() / substring()代替。
  • ||是ANSI标准字符串连接运算符。这也可能因数据库而异。
  • 我不承认配方date('Y-W', time()),但认为它是正确的。