计算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中的日期差异的主要内容,如果未能解决你的问题,请参考以下文章