表中有两行已创建和修改。我需要减去修改后的 - 创建并列出日期(在结果表中给出)。
表名:用户
|-----|---------------------|---------------|
| 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 |
|----------------------|
怎么做?
答案 0 :(得分:4)
您可以使用DateDiff()
功能:
SELECT ID, Datediff (modified,created) AS days
FROM user
输出:
╔════╦══════╗
║ ID ║ DAYS ║
╠════╬══════╣
║ 1 ║ 4 ║
║ 2 ║ 14 ║
║ 3 ║ 0 ║
║ 4 ║ 5 ║
╚════╩══════╝
答案 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