连接select mysql上的数据和文本

时间:2016-09-22 13:57:51

标签: php mysql datetime

研究员,

我正在使用PHP和此代码:

SELECT DATE_FORMAT(data,'%d/%m/%Y'' às ''%H:%i:%s') as data FROM infografico GROUP BY data

显示如下内容:

(última atualização: 22/09/2016' às '09:37:16)

问题是:'怎么不出现?

3 个答案:

答案 0 :(得分:0)

SELECT DATE_FORMAT(data,'%d/%m/%Y'' às ''%H:%i:%s') as data FROM infografico GROUP BY data
                        ^--start string
                                 ^^--escaped quote
                                       ^^--escaped quote
                                                 ^---end of string

字符串分隔符由MySQL解析,然后''被解析为'以用于输出目的,因为它们不是字符串分隔符 - 它们被视为字面引用字符。如果你想要更多的引号,你需要这个丑陋的构造:

DATE_FORMAT(data, '''%d etc... ''')

e.g。

mysql> select '''foo''bar''';
+-----------+
| 'foo'bar' |
+-----------+
| 'foo'bar' |
+-----------+
1 row in set (0.00 sec)

答案 1 :(得分:0)

在开头和结尾只需要一个引号

SELECT DATE_FORMAT(数据,'%d /%m /%Yàs%H:%i:%s')

答案 2 :(得分:0)

来自String Literals(强调我的):

  

有几种方法可以在字符串中包含引号字符:

     
      
  • 引用“'”的字符串中的“'”可写为“''”。

    < / LI>   
  • 引用“"”的字符串中的“"”可写为“""”。

  •   
  • 通过转义字符(“\”)来引用引号字符。

  •   
  • 引用“'”的字符串中的“"”无需特殊处理,无需加倍或转义。以同样的方式,字符串中的“"”   引用“'”不需要特殊处理。

  •   

但我怀疑你想使用其他语法:

  

彼此相邻的引号字符串连接成一个字符串   串。以下几行是等效的:

'a string'
'a' ' ' 'string'

为此,你缺少空格:

mysql> SELECT '%d/%m/%Y'' às ''%H:%i:%s' as quotes, '%d/%m/%Y' ' às ' '%H:%i:%s' as no_quotes;
+------------------------+----------------------+
| quotes                 | no_quotes            |
+------------------------+----------------------+
| %d/%m/%Y' às '%H:%i:%s | %d/%m/%Y às %H:%i:%s |
+------------------------+----------------------+
1 row in set (0.00 sec)

当然,正如已经指出的那样,如果你不想要,你真的不需要手动插入引号。