计算MySQL和PHP中的日期差异

问题描述 投票:0回答:5

假设我们有一个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',然后没有错误,一切都按预期工作。

php mysql date difference
5个回答
2
投票

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

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

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


0
投票

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

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

0
投票

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

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

0
投票

试试这个查询,

    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;

0
投票

尝试

SELECT phone, name, DATEDIFF(CURDATE(),EXP) AS experience, bio, photo,  FROM squad
© www.soinside.com 2019 - 2024. All rights reserved.