【发布时间】:2016-06-27 09:35:54
【问题描述】:
一个简单的例子:
select 'now()'::timestamp;
给予
2016-03-12 07:52:46.1
注意now() 函数调用周围的单引号。
我认为now() 函数调用被单引号转义,数据库应该只输出now()。但我在 Postgres 9.0 和 8.4 上对此进行了测试,结果都是 2016-03-12 07:52:46.1。
当我将'now()'(注意单引号)显式插入timestamp 类型的字段时,也会发生同样的事情。
但如果没有隐式转换为timestamp,它只会输出'now()',例如:
select 'now()';
给予:
now()
我注意到这种“取消转义”只发生在 now 上,因为我测试了对其他函数的调用正确地被单引号转义。
我没能找到合理的解释,谁能给点建议?
【问题讨论】:
-
有趣。你能在文本列和
select the_text::timestamp from the_table中插入“now()”吗?
标签: postgresql types casting timestamp