OberonCore
https://forum.oberoncore.ru/

Даты в SQL
https://forum.oberoncore.ru/viewtopic.php?f=23&t=300
Страница 1 из 1

Автор:  Trurl [ Вторник, 05 Сентябрь, 2006 10:11 ]
Заголовок сообщения:  Даты в SQL

Замена "/" -> "-" в SqlDb.AddItem правильно, но недостаточно.
Дело в том, что локальные ODBC-драйверы (Jet и FoxPro) воспринимают только американский формат "MM-DD-YYYY".
Проще всего использовать "ODBC escape sequences" {d’2006-09-05’}
Код:
ELSIF (mod = "Dates") & (typ = "Date") THEN
  item.GetVal(dv, ok); ASSERT(ok, 101);
  IF (dv.value.year = 0) & (dv.value.month = 0) & (dv.value.day = 0) THEN
    AddStr(nullStr, FALSE, 4, s)
  ELSE
   IF ~native THEN AddStr("{d'", TRUE, 3, s) END;
   Strings.IntToString(dv.value.year, h);
   AddStr(h, FALSE, 8, s); AddChar("-", s);
   Strings.IntToStringForm(dv.value.month, Strings.decimal, 2, "0", FALSE, h);
   AddStr(h, FALSE, 4, s); AddChar("-", s);
   Strings.IntToStringForm(dv.value.day, Strings.decimal, 2, "0", FALSE, h);
   AddStr(h, FALSE, 4, s);
   IF ~native THEN AddStr("'}", TRUE, 2, s)  END
  END


Правда, это только для ODBC, но других драйверов все равно нет.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/