PB Select TODAY() Into :var From DUMMY
PB Select TODAY() Into :var From DUMMY
当我在 PB SELECT 得到今天时,它 returns 1900/1/1
date var
Select TODAY() Into :var From DUMMY
但是当我分配给变量 TODAY() 时,它按预期工作
date var
var = today()
我使用 MS SQL Server 2016 和 PowerBuilder 12.5。
我认为问题出在不同的日期格式上,但我已经更改了 Windows 语言环境中的日期格式,即 PB TODAY() returns 2018-10-08 和 MSSQL GetDate() returns 2018-10-08 18:25:23.207
所以日期部分具有相同的格式。
问题不在 DUMMY table 中,因为我创建了 MS SQL DUMMY table 并在其中插入了 1 行。
另外我想知道 SELECT TODAY() 和 var = TODAY() 是否有区别?
我想第一个变体 returns MS SQL 服务器时间但是第二个 returns 当地时间。是不是是?
您提供了自己的答案:Today() 是 PowerScript 函数,GetDate() 是 MS 上的函数 SQL。如果您正在执行 SQL,它需要是针对您正在执行的服务器的有效 SQL 语句(INTO :var 部分除外),并且不能包含 PowerScript 函数。
另外两件事:
- “FROM DUMMY”是 Oracle 的东西,我很确定它不会在 MS 上运行。 (您在执行 SQL 后捕获错误代码,对吗?)
- 我不会说这可能是一个关键问题,但正如您所指出的,GetDate returns 日期时间;我建议将其作为捕获变量的数据类型。
是的,GetDate() 将是您服务器的 date/time,Today() 将基于本地工作站。
祝你好运。
尝试以下 SQL。
Select getdate() into :var From DUMMY;
当我在 PB SELECT 得到今天时,它 returns 1900/1/1
date var
Select TODAY() Into :var From DUMMY
但是当我分配给变量 TODAY() 时,它按预期工作
date var
var = today()
我使用 MS SQL Server 2016 和 PowerBuilder 12.5。
我认为问题出在不同的日期格式上,但我已经更改了 Windows 语言环境中的日期格式,即 PB TODAY() returns 2018-10-08 和 MSSQL GetDate() returns 2018-10-08 18:25:23.207 所以日期部分具有相同的格式。
问题不在 DUMMY table 中,因为我创建了 MS SQL DUMMY table 并在其中插入了 1 行。
另外我想知道 SELECT TODAY() 和 var = TODAY() 是否有区别? 我想第一个变体 returns MS SQL 服务器时间但是第二个 returns 当地时间。是不是是?
您提供了自己的答案:Today() 是 PowerScript 函数,GetDate() 是 MS 上的函数 SQL。如果您正在执行 SQL,它需要是针对您正在执行的服务器的有效 SQL 语句(INTO :var 部分除外),并且不能包含 PowerScript 函数。
另外两件事:
- “FROM DUMMY”是 Oracle 的东西,我很确定它不会在 MS 上运行。 (您在执行 SQL 后捕获错误代码,对吗?)
- 我不会说这可能是一个关键问题,但正如您所指出的,GetDate returns 日期时间;我建议将其作为捕获变量的数据类型。
是的,GetDate() 将是您服务器的 date/time,Today() 将基于本地工作站。
祝你好运。
尝试以下 SQL。
Select getdate() into :var From DUMMY;