1 (edited by pavlenko.vladimir.v 2023-01-12 09:23:25)

Topic: julianday разный результат

Не могу, понять почему разные значения??
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9167&download=0

Post's attachments

Attachment icon julianday.rar 2.8 kb, 119 downloads since 2023-01-12 

Re: julianday разный результат

-

Post's attachments

Attachment icon Безымянный.png 8.76 kb, 45 downloads since 2023-01-12 

Re: julianday разный результат

Разница во временной составляющей между кликами?
Или один использует настоящий юлианский календарь, а другой использует григорианский, несмотря на то, что он не должен

Difference in the time component between clicks?
Or one uses the true Julian calendar and the other uses Gregorian, despite it shouldn't

On a clear disk you can seek forever

4 (edited by sparrow 2023-01-12 10:32:54)

Re: julianday разный результат

NOW                             DateTimePicker
2023-01-12 09:24:28    2023-01-12 11:24:28


SELECT DATETIME(julianday('Now')), DATETIME(julianday('Now','localtime'))

DATETIME(julianday('Now'))    DATETIME(julianday('Now','localtime'))
2023-01-12 09:55:30                         2023-01-12 11:55:30

the string 'now', is converted into the current date and time as obtained from the xCurrentTime method of the sqlite3_vfs object in use. ... Universal Coordinated Time (UTC) is used.


LOCALTIME для NOW

и DateTime обрежет милисекунды




procedure Form1_OnShow (Sender: TObject; Action: string);
begin
  Form1.Edit1.Text := SQLExecute('SELECT julianday(DateTime("Now","localtime"))');
  Form1.DateTimePicker1.DateTime := Now;
  Form1.Edit2.Text := SQLExecute('SELECT julianday(DateTime('+Form1.DateTimePicker1.sqlDateTime+'))');
end;

Re: julianday разный результат

CDB wrote:

Или один использует настоящий юлианский календарь, а другой использует григорианский, несмотря на то, что он не должен

я записал  дату в БД, а потом отнял ее от now и в результате получился минус

6 (edited by k245 2023-01-16 16:36:47)

Re: julianday разный результат

Разница в локали - то есть между гринвичем и локальным временем.

  Form1.Edit1.Text := SQLExecute('SELECT julianday("Now"');

а вот так, как справедливо заметил Sparrow, разницы нет :

  Form1.Edit1.Text := SQLExecute('SELECT julianday("Now","localtime")');

По факту небольшая разница есть, но эта разница обусловлена временем выполнения скрипта:

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9169&download=0

Post's attachments

Attachment icon изображение_2023-01-16_193441660.png 4.22 kb, 51 downloads since 2023-01-16 

Визуальное программирование: блог и телеграм-канал.