Fellows,
我正在使用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)
问题是:'怎么可能不出现?
你只需要在开头和结尾有一个单引号
SELECT DATE_FORMAT(data,'%d/%m/%Y às %H:%i:%s'(
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... ''')
例如
mysql> select '''foo''bar''';
+-----------+
| 'foo'bar' |
+-----------+
| 'foo'bar' |
+-----------+
1 row in set (0.00 sec)
来自字符串文字(强调我的(:
有几种方法可以在字符串中包含引号字符:
用">
- 用">
'
"引号引号的字符串中的"'
"可以写为"''
"。
"
"引号引号的字符串中的""
"可以写为"""
"。- 用">
在引号字符前面加上转义字符 ("
'
"(。
"
"引用的字符串中的"'
"不需要特殊处理,也不需要加倍或转义。同理,字符串内的""
" 引用"'
"不需要特殊处理。
但我怀疑你想使用这个其他语法:
彼此相邻的带引号的字符串连接成单个 字符串。以下行是等效的:
'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)
当然,正如已经指出的,如果您不想,则实际上不需要手动插入引号。