当我在PB的SELECT中获得TODAY时,它返回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()返回 2018-10-08 和MSSQL GetDate()返回 2018-10-08 18:25:23.207 因此日期部分具有相同的格式。
由于我创建了MS SQL DUMMY表并在其中插入了1行,因此问题不在DUMMY表中。
我还想知道 SELECT TODAY()和 var = TODAY()是否有区别? 我想第一个变体返回MS SQL Server时间,而第二个变体返回本地时间。不是吗?
答案 0 :(得分:1)
您提供了自己的答案:Today()是PowerScript函数,GetDate()是MS SQL上的函数。如果要执行SQL,则它必须是要针对其执行的服务器的有效SQL语句(INTO:var部分除外),并且不能包含PowerScript函数。
另外两件事:
是的,GetDate()将是服务器的日期/时间,Today()将基于本地工作站。
祝你好运。
答案 1 :(得分:1)
尝试以下SQL。
Select getdate() into :var From DUMMY;