计算 MySQL 和 PHP 的日期差异

Calculate date difference in MySQL and PHP

假设我们有一个 MYSQL 数据库,'employees.'

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

我希望数据库查询 return 变量 "experience" 通过比较当前日期与 EXP 列中包含的日期计算得出。

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

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

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

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

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

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

根据我从你的问题和 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, DATEDIFF(CURDATE(),EXP) AS experience, bio, photo,  FROM squad

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

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

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

试试这个查询,

    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;