简体   繁体   English

在Concat mysql中选择

[英]Select in Concat mysql

I'm trying to get a date value with: - Current year - Current month - Day number from one select 我正在尝试通过以下方式获取日期值:-当前年份-当前月份-一次选择的天数

the query 查询

SELECT rat_data FROM rate_unita WHERE rateid = 1 

as a result one INT value. 结果是一个INT值。

When I try to execute the following: 当我尝试执行以下命令时:

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

Mysql mark my syntax as incorrect near ' ( MONTH( NOW( ) ) ) , ( SELECT rat_data FROM rate_unita WHERE r Mysql将我的语法标记为在'(MONTH(NOW()))附近不正确,((在rate_unita中选择rat_data

I think that there is something wrong with the way I'm calling the SELECT in the CONCAT, what is the correct query to reach my goal? 我认为我在CONCAT中调用SELECT的方式出了问题,达到我的目标的正确查询是什么?

Thanks L 谢谢L

You're closing the concat function too early. 您太早关闭concat函数了。 Remove some extra parentheis 删除一些多余的括号

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

But you need to add some hyphens to make it a true date value 但是您需要添加一些连字符以使其成为真实的日期值

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

This should result in a date of YEAR-MONTH-rat_data 结果应为YEAR-MONTH-rat_data

Here's a working SQL Fiddle 这是一个有效的SQL小提琴

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM