假设我们有一个MYSQL数据库,'雇员。'
数据库包含一列“EXP”,其中包含表示人员开始日期的字符串...示例:“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',然后没有错误,一切都按预期工作。
答案 0 :(得分:2)
你有额外的括号和' EXP'将使用字符串文字而不是数据库字段
SELECT phone, name, DATEDIFF(now(), exp) AS experience, bio, photo
FROM squad
答案 1 :(得分:0)
根据我从你的问题和select语句中的理解,我认为你的语法错误,请检查以下查询
SELECT phone, name, DATEDIFF(now(), exp) AS experience, bio, photo
FROM squad
答案 2 :(得分:0)
删除CURDATE()周围的引号,它是函数,因此不需要引号
SELECT phone, name, (DATEDIFF(CURDATE(), EXP) AS experience, bio, photo, FROM squad
答案 3 :(得分:0)
尝试
SELECT phone, name, DATEDIFF(CURDATE(),EXP) AS experience, bio, photo, FROM squad
答案 4 :(得分: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;