PB Выберите TODAY () Into: var From DUMMY - PullRequest
0 голосов
/ 08 октября 2018

Когда я получаю СЕГОДНЯ в SELECT в PB, он возвращает 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 Таким образом, части даты имеют одинаковые форматы.

Проблема в том, чтоне в DUMMY таблице, так как я создал таблицу MS SQL DUMMY и вставил в нее 1 строку.

Также мне интересно, есть ли разница в SELECT TODAY () и var = TODAY () ?Я полагаю, что первый вариант возвращает время сервера MS SQL, а второй - локальное время.Не есть?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Попробуйте ниже SQL.

Select getdate() into :var From DUMMY;

0 голосов
/ 09 октября 2018

Вы предоставили свой собственный ответ: Today () - это функция PowerScript, GetDate () - это функция в MS SQL.Если вы выполняете SQL, он должен быть допустимым оператором SQL для сервера, с которым вы выполняете (кроме части INTO: var), и не может включать функцию PowerScript.

Две другие вещи:

  1. «ОТ ЧЕЛОВЕКА» - это вещь Oracle, и я уверен, что она не будет работать на MS.(Вы фиксируете свои коды ошибок после выполнения SQL, верно?)
  2. Я не скажу, что это, вероятно, критическая проблема, но, как вы заметили, GetDate возвращает datetime;Я бы порекомендовал это как тип данных для переменной захвата.

И да, GetDate () будет датой / временем вашего сервера, а Today () будет зависеть от локальной рабочей станции.

Удачи.

...