Oracle SQL Developer 中的时间戳文字

问题描述 投票:0回答:4

我需要在 Oracle SQL Developer 上测试 sql 查询。 这些查询包含以下格式的时间戳文字

{ts 'yyyy-mm-dd hh:mm:ss.fff'}

Oracle SQL Developer 似乎不接受此语法,符号

{
会导致错误 ORA-00911:无效字符

有什么我可以做的吗?

编辑

sql编辑器建议我不允许使用

{
。 我尝试使用其他两个工具(DbVisualizerDBeaver),都使用 Oracle Thin 驱动程序,一切正常。

但是我仍然想在 Oracle SQL Developer 中使用该语法,因为它具有有趣的功能。 我必须测试的查询不是我编写的,更改语法不是一个选项。

sql oracle-sqldeveloper ojdbc
4个回答
10
投票

使用实际的 SQL 时间戳文字:

TIMESTAMP 'yyyy-mm-dd hh:mm:ss.fff'

您使用的是 JDBC 转义语法,它受 JDBC 驱动程序支持,但 Oracle 数据库本身不支持。


2
投票

您可以使用

CAST

select to_char(cast(sysdate as timestamp),'DD-MON-YYYY HH24:MI:SS.FF') from dual

0
投票

查看答案:如何在oracle中将日期转换为时间戳(DD-MON-YYYY HH24:MI:SS.FF格式)?

“{ts xxx}”语法特定于 ODBC 或 OLEDB 驱动程序...


0
投票

在 Oracle SQL 中以特定格式

{ts 'yyyy-mm-dd hh:mm:ss.fff'}
使用时间戳文字时出现问题。大括号
{}
不是标准 SQL 语法,可能会导致您遇到的错误。

您可以使用标准 ANSI SQL 时间戳文字格式,无需花括号。以下是格式化时间戳文字的方法:

TIMESTAMP 'yyyy-mm-dd hh:mm:ss.fff'

示例

SELECT * FROM tablename WHERE timestampcolumn >= TIMESTAMP '2023-08-29 12:34:56.789';

如果您正在使用的查询是使用特定的

{ts 'yyyy-mm-dd hh:mm:ss.fff'}
语法编写的,您可能需要将其替换为标准 ANSI SQL 时间戳文字格式,以确保与 Oracle SQL 的兼容性。

© www.soinside.com 2019 - 2024. All rights reserved.