sql - psql 查询中时间戳的无法解释的语法错误

标签 sql postgresql timestamp syntax-error

我在 psql 查询中遇到语法错误,这真的很奇怪,因为我的语法似乎是正确的

INSERT INTO functionMonitoring (function, startDate, endDate, type, severity, status, text) values('test', 2019-07-16 17:04:53.866, 2019-07-16 17:04:53.866, 'process', 'INFORMATION', 'OK', 'Some random stuff');

这是我的查询,但在我的 psql 控制台中输入它会得到:

ERROR:  syntax error at or near "17"
LINE 1: ...severity, status, text) values('test', 2019-07-16 17:04:53.8...
                                                             ^

我不明白为什么会这样。这不是类型问题,因为我已经检查了每一列的类型并且我的表已经包含类似的数据。这是我的表格中已有的一行示例

 id |    function    |          startdate           |           enddate            |  type   | severity | status |                  text
----+----------------+------------------------------+------------------------------+---------+----------+--------+----------------------------------------
  4 | DBReaderWindow | Tue Jul 16 16:15:41.144 2019 | Tue Jul 16 16:15:42.779 2019 | process | LOW      | OK     | Function fully executed with no errors

希望我提供了足够的信息来解决问题,谢谢您的帮助!

最佳答案

您缺少一个单引号来开始包含您的时间戳的字符串文字:

INSERT ... VALUES ('test', '2019-07-16 17:04:53.8', ...)
                           ^                     ^

如果没有它们,PostgreSQL 会将 2019-07-16 解释为算术表达式(相当于 1996)并且不会期望以下 17

关于sql - psql 查询中时间戳的无法解释的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57060657/

相关文章:

sql - PostgreSQL全文搜索排名的最佳使用方法

php - 如何更改 created_at 和 updated_at 值 laravel 的默认格式

mysql从列中减去两行并将其放入别名中

mysql - SQL - 如何按最小日期排序

mysql - 添加外键时出现错误代码#1452

javascript - 如何使用 javascript 将时间戳字符串转换为本地时间?

java - 如何将时间戳存储到 db4o 数据库中

用于计算时间分段数据的运行组计数的 SQL 查询

sql - 我需要将 SQL 中的所有事件分配给一个 ID,但目前每个事件都有三个 ID

django - 无法在现有 Django 项目上从头开始恢复数据库