计算MySQL和PHP中的日期差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算MySQL和PHP中的日期差异相关的知识,希望对你有一定的参考价值。

假设我们有一个mysql数据库,“员工”。

该数据库包含一列“EXP”,其中包含一个表示人员START DATE的字符串...示例:“2015-01-11”(格式:yyyy-mm-dd)

我希望数据库查询返回一个变量“experience”,它是通过将当前日期与EXP列中包含的日期进行比较来计算的。

这是最近的尝试;我在想什么:

SELECT phone, name, (DATEDIFF('CURDATE()','EXP') AS experience, bio, photo,  FROM squad

你能说出我想要完成的事吗?如果有人知道正确的代码放在这里,将不胜感激。

请注意,如果我只是替换代码

(DATEDIFF('CURDATE()','EXP') AS experience

使用'EXP',然后没有错误,一切都按预期工作。

答案

你有额外的括号和'EXP'将使用字符串文字而不是数据库字段

    SELECT phone, name, DATEDIFF(now(), exp) AS experience, bio, photo
FROM squad

工作演示:http://sqlfiddle.com/#!9/79e87/2

另一答案

从我对你的问题和select语句的理解,我认为你只是有一个错误的语法检查下面的查询

SELECT phone, name, DATEDIFF(now(), exp) AS experience, bio, photo
FROM squad
另一答案

删除CURDATE()周围的引号,它是函数,因此不需要引号

SELECT phone, name, (DATEDIFF(CURDATE(), EXP) AS experience, bio, photo,  FROM squad
另一答案

试试这个查询,

    SELECT 
            phone, name, 
            CONCAT( 
                    FLOOR(TIMESTAMPDIFF(MONTH,exp,CURDATE())/12),
                    ' Year(s), ', 
                    (TIMESTAMPDIFF(MONTH,exp,CURDATE())%12),
                    ' Month(s)'
                  ) AS experience,
            bio, photo  
    FROM 
            squad;
另一答案

尝试

SELECT phone, name, DATEDIFF(CURDATE(),EXP) AS experience, bio, photo,  FROM squad

以上是关于计算MySQL和PHP中的日期差异的主要内容,如果未能解决你的问题,请参考以下文章

PHP MySQL 日期差异

php中的日期差异? [复制]

php中的日期差异? [复制]

PHP 计算日期,月份和日期之间的差异

MySQL中日期之间的月份差异

PHP和MySQL之间的时间差异[重复]