假设我们有一个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
从我对你的问题和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