我正在尝试获取日期值: - 今年 - 这个月 - 一个选择的日期号码
查询
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的方式有问题,达到目标的正确查询是什么?
由于 →
答案 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)
使用DATE_FORMAT函数。这里有一些例子: http://www.w3schools.com/sql/func_date_format.asp http://www.mysqltutorial.org/mysql-date_format/