【问题标题】:MySQL sort multiple date columnsMySQL对多个日期列进行排序
【发布时间】:2011-07-06 05:33:17
【问题描述】:

我有一个包含 3 个关键字段的数据库

  • 开始日期
  • 结束日期
  • 日期

start_dateend_date 用于跨越多个日期的事件。 date 用于单日活动。

如何按开始日期或日期(以适用者为准)对所有日期进行排序。假设有第四个字段multiple_day_event,它要么是“是”,要么是“否”。

【问题讨论】:

  • 我会省略datemultiple_day_event 列——它们是多余的,没有它们查询会更容易。设置具有相同结束日期的单日事件没什么大不了的。但我希望这些专栏包括时间......
  • “数据库”是指“表”吗?
  • 感谢编辑以提高可读性 OMG Ponies,但删掉我说“我知道最好的方法可能是切换到使用 start_date 和 end_date 即使对于单日事件,但我只是对您如何通过查询完成此操作感兴趣。”然后转身提供建议?
  • 是的,我的意思是桌子……咖啡还没有生效。

标签: mysql sql


【解决方案1】:

嗯,它看起来像IFNULL(START_DATE,DATE) IF(MULTIPLE_DAY_EVENT='yes',START_DATE, DATE)case, when

CASE multiple_day_event
    WHEN 'yes' THEN START_DATE
    -- WHEN 'taco' THEN 'salsa???' Or any other when.
    ELSE DATE
END CASE

【讨论】:

    【解决方案2】:

    SELECT IF(multiple_day_event, start_date, date) AS mdate ORDER BY mdate

    【讨论】:

      猜你喜欢
      • 2020-10-25
      • 2014-07-20
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 2018-12-31
      • 2021-12-18
      • 2011-02-10
      相关资源
      最近更新 更多