在Concat中选择mysql

时间:2015-09-23 21:17:57

标签: mysql sql date datetime string-concatenation

我正在尝试获取日期值: - 今年 - 这个月 - 一个选择的日期号码

查询

SELECT rat_data FROM rate_unita WHERE rateid = 1 

结果是一个INT值。

当我尝试执行以下操作时:

SELECT DATE(CONCAT(YEAR(NOW())),(MONTH(NOW())), (SELECT rat_data FROM rate_unita WHERE rateid = 1))

Mysql将我的语法标记为'(MONTH(NOW()))附近的错误,(SELECT rat_data FROM rate_unita WHERE r

我认为我在CONCAT中调用SELECT的方式有问题,达到目标的正确查询是什么?

由于 →

2 个答案:

答案 0 :(得分:1)

您过早关闭了concat功能。删除一些额外的parentheis

SELECT DATE(CONCAT(YEAR(NOW()),
  MONTH(NOW()),
  (SELECT rat_data FROM rate_unita WHERE rateid = 1)
))

但是你需要添加一些连字符才能使它成为真正的日期值

SELECT DATE(
  CONCAT(
    YEAR(NOW()),
    '-',
    MONTH(NOW()),
    '-',
    (SELECT rat_data FROM rate_unita WHERE rateid = 1)
  )
)

这应该会导致YEAR-MONTH-rat_data

的日期

这是一个有效的SQL Fiddle

答案 1 :(得分:0)