使用 ODBCtest 将转换的间隔文字插入 teradata 13.0 数据库时出现问题

发布于 2024-11-15 05:14:49 字数 904 浏览 5 评论 0原文

我正在尝试

INSERT INTO SEN.Interval_Day_Minute_Table VALUES('NegativeIntervalDay', CAST(INTERVAL -'200 5' DAY TO HOUR AS INTERVAL DAY (4) TO MINUTE))

使用 ODBCtest 执行此查询:进入 Teradata 数据库,并收到以下错误:

SQLExecDirect:
                In:             Statementhandle = 0x000000000053C270, StatementText = "INSERT INTO SEN.Interval_Day_Minute_Table VALUES('...", Statementlength = 142
                Return: SQL_ERROR=-1
                stmt:       szSqlState = "37000", *pfNativeError = -3706,                       szErrorMsg = "[Teradata][ODBC Teradata Driver][Teradata Database] Syntax error: Invalid INTERVAL Literal. "

The table was created with:

CREATE TABLE SEN.Interval_Day_Minute_Table(
KeyColumn CHAR (255) CHARACTER SET UNICODE,
Column1 INTERVAL DAY (4) TO MINUTE)

我是 Teradata 的新手,但据我所知,我使用的是正确的语法。

I am trying to execute this query:

INSERT INTO SEN.Interval_Day_Minute_Table VALUES('NegativeIntervalDay', CAST(INTERVAL -'200 5' DAY TO HOUR AS INTERVAL DAY (4) TO MINUTE))

into a teradata database using ODBCtest, and I get the following error:

SQLExecDirect:
                In:             Statementhandle = 0x000000000053C270, StatementText = "INSERT INTO SEN.Interval_Day_Minute_Table VALUES('...", Statementlength = 142
                Return: SQL_ERROR=-1
                stmt:       szSqlState = "37000", *pfNativeError = -3706,                       szErrorMsg = "[Teradata][ODBC Teradata Driver][Teradata Database] Syntax error: Invalid INTERVAL Literal. "

The table was created with:

CREATE TABLE SEN.Interval_Day_Minute_Table(
KeyColumn CHAR (255) CHARACTER SET UNICODE,
Column1 INTERVAL DAY (4) TO MINUTE)

I'm new to Teradata, but as far as I can tell, I'm using the correct syntax.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

粉红×色少女 2024-11-22 05:14:49

问题是字符串的“小时”部分必须是两位数,因此 -'200 05' 而不是 -'200 5'。

哎呀

the problem was that the 'hours' portion of the string had to be two digits, so -'200 05' rather than -'200 5'.

whoops

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文