【问题标题】:Actian/Pervasive SQL and Date VariablesActian/Pervasive SQL 和日期变量
【发布时间】:2021-06-11 22:34:25
【问题描述】:

Actian Zen/Pervasive 中如何声明和使用日期变量?

我该如何解决这个问题

    CREATE proc test1 ()
returns(TranDate integer, GLAcntNumber integer , Net decimal(39,19))
as BEGIN 
    
DECLARE :StartDate DATE ;
SELECT CAST('2021-01-01' AS DATE) INTO :StartDate ;
SELECT :StartDate , GLAcntNumber, SUM(Net) AS Amt 
FROM vGLBalances 
WHERE period < 1
GROUP BY :StartDate, GLAcntNumber;

END

【问题讨论】:

  • 我没有发现任何错误,您遇到了什么错误?您使用的是哪个版本的 Actian/Pervasive?
  • Zen 安装版本 14.20.012

标签: date odbc pervasive actian


【解决方案1】:

我收回那句话。我确实在您的查询中看到了一些东西。您正在创建一个 DATE,但正试图将其作为 INTEGER 传回。将您的查询更改为:

CREATE procedure test1 ()
returns(TranDate date, GLAcntNumber integer , Net decimal(39,19))
as BEGIN 
    
DECLARE :StartDate DATE ;
SELECT CAST('2021-01-01' AS DATE) INTO :StartDate ;
SELECT :StartDate, GLAcntNumber, SUM(Net) AS Amt 
FROM vGLBalances 
WHERE period < 1
GROUP BY :StartDate, GLAcntNumber;

END

它应该工作。如果您真的想要整数而不是日期,则需要将查询更改为使用日期。

【讨论】:

  • 对不起,这是一个错误 - 我确实将它作为日期,我尝试了整数然后将其改回(不完全)它每次在 SQL 查询执行期间发生错误时返回一个错误原因:SQL 错误 [ 37000]:[LNA][PSQL][SQL 引擎]语法错误:CREATE proc> test1()
  • 我想通了。使用 CREATE PROCEDURE(无快捷方式)
猜你喜欢
  • 2022-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多