减去日期并列出MySQL中的日期

时间:2013-05-08 07:12:05

标签: mysql sql datediff

表中有两行已创建和修改。我需要减去修改后的 - 创建并列出日期(在结果表中给出)。

表名:用户

|-----|---------------------|---------------|
| id  |       created       |   modified    |
|-----|---------------------|---------------|
| 1   | 2013-04-12 17:49:26 |  2013-04-16   |
| 2   | 2013-04-12 20:20:25 |  2013-04-26   |
| 3   | 2013-04-12 12:24:23 |  2013-04-12   |
| 4   | 2013-04-18 19:03:47 |  2013-04-23   |
|-------------------------------------------|

我需要下面给出的结果..

|-----|----------------|
| id  |    days        |
|-----|----------------|
| 1   |     4          |
| 2   |     14         |
| 3   |     0          |
| 4   |     5          |
|----------------------|

怎么做?

4 个答案:

答案 0 :(得分:4)

您可以使用DateDiff()功能:

SELECT ID, Datediff (modified,created) AS days
FROM user

输出:

╔════╦══════╗
║ ID ║ DAYS ║
╠════╬══════╣
║  1 ║    4 ║
║  2 ║   14 ║
║  3 ║    0 ║
║  4 ║    5 ║
╚════╩══════╝

See this SQLFiddle

答案 1 :(得分:0)

假设创建和修改的都是日期时间类型:

SELECT id, DATEDIFF(modified, created) as days FROM result

答案 2 :(得分:0)

你可以试试这个:

SELECT id, Datediff(modified,created) as days FROM user

答案 3 :(得分:-1)

您可以在php中使用DateTime :: diff来执行此操作。 http://www.php.net/manual/en/datetime.diff.php

您也想使用DateTime类。 http://www.php.net/manual/en/class.datetime.php

在mysql中使用DATEDIFF()函数 https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff