【问题标题】:Adding days to a start date to create and ending date将天数添加到开始日期以创建和结束日期
【发布时间】:2023-03-27 09:09:02
【问题描述】:

我有一个表,其中包含一个包含日期的“start_date”列和一个包含数值的“duration”列。我想查询有一列“end_date”。在 Excel 中,我只需在日期格式的 end_date 列中添加 start_date 列和 duration 列。我不知道如何使用 MySQL 来做到这一点。

如果我执行 "SELECT start_date, duration, start_date+duration AS "end_date",MySQL 会将前两列视为数字值,我将得到荒谬的日期值(2013/10/30 + 2 将导致 20131032 ) 在“end_date”列中。

是否有一种简单的方法可以在 MySQL 查询中执行与我在 Excel 表中执行的相同操作?

谢谢

【问题讨论】:

    标签: mysql date add


    【解决方案1】:

    我想你正在寻找这个:

    DATE_ADD([Date starting with],INTERVAL [number of days] DAY);
    

    您还可以使用月份和年份。 Here is the documentation on it.

    【讨论】:

      【解决方案2】:

      使用DATE_ADD()

      SELECT 
        start_date, 
        duration, 
        DATE_ADD(start_date, INTERVAL duration DAY) AS end_date
      

      【讨论】:

      • INTERVAL 应该是 DAY 而不是 DAYS
      • 已更正。谢谢你。只是在写一些我使用“days”的PHP,猜想它卡在了我的脑海里。
      【解决方案3】:

      答案在DATE_ADD(date, INTERVAL expr unit) MySQL 函数。 以这种方式使用它:

      DATE_ADD(startdate,INTERVAL duration DAY)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        • 2012-08-19
        • 2015-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多