我想在表格中插入一行:
INSERT INTO some_table VALUES (now(), now());
我希望两列中的日期值相等。以上查询对此要求是否安全?或者我应该使用其他替代方案,如子查询/ CTE:
INSERT INTO some_table (select t.now, t.now from (select now()) as t);
一般来说,如何在SQL内部调用这些函数? 如何调用函数的序列(从左到右/从右到左)?是否只调用一次给定函数并为单个查询缓存返回值?它是供应商特定的吗?
非常欢迎任何阅读链接。
答案 0 :(得分:9)
documentation说now()
:
now()是传统的PostgreSQL等价物 transaction_timestamp()
关于transaction_timestamp()
:
这些SQL标准函数都根据当前事务的开始时间返回值
因此,在一个SQL语句中,now()
将始终返回相同的值。