Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

Решил по быстрому   Найти похожие ветки 

 
Jeer ©   (2014-12-03 11:14) [0]

накидать update таблицы в MSSQL 2008 через TADOConnection.
В таблице есть поле: datetime

Долго не думая, влепил через Format("%f",[double(Now)])
Собственно, все сработало, за исключением появления в таблице времени + 2 дня от Now.

Очесал репу, заменил на
Format("%s",[QuotedStr(DateTimeToStr(Now, fsLoc)))]
где в fsLoc: TFormaSettings выставил формат:
   ShortDateFormat := "YYYYMMDD";
   ShortTimeFormat := "hh:mm:ss";
Все пришло в соответствие, но все же потом полез выяснять, что же я забыл..

Ну и да:
Delphi TDateTime 30.12.1899 00:00:00
MSSQL datetime   01.01.1900 00:00:00
Вот они два дня.

Привык, понимешь, к параметрам и AsDateTime :)


 
junglecat ©   (2014-12-03 11:28) [1]

а в чем вопрос?


 
vuk ©   (2014-12-03 11:30) [2]

to Jeer ©   (03.12.14 11:14)

> Долго не думая, влепил через Format("%f",[double(Now)])

getdate() же


 
кгшзх ©   (2014-12-03 12:27) [3]

odbc canonical
yyyy-mm-dd


 
Jeer ©   (2014-12-03 15:46) [4]

>junglecat ©   (03.12.14 11:28) [1]
>а в чем вопрос?

Да нет вопроса. Просто пример, как можно на ровном месте кувыркнуться.

getdate() - это на сервере, а мне клиент был нужен.
Кроме того на клиенте два времени: время создания записи в буферной базе и время update на сервере, т.е. ~ Now.

yyyymmdd - canonical ISO


 
Ega23 ©   (2014-12-03 18:14) [5]

В Delphi за стартовую дату принято 30 декабря 1899. В MSSQL - 01.01.1900
Почему такая странная дата в Delphi - ХЗ.
А в целом - да, юзайте параметры.


 
Ellisium ©   (2014-12-03 19:37) [6]

да какая разница 1899 или 1900, 30 декабря или 1 января, мы же программисты, круглые даты это все условности.


 
Ega23 ©   (2014-12-03 21:47) [7]

Да, конечно, какая разница, в чём этот самый измерять: в вершках, дюймах, сантиметрах или в отвёртках?


 
Ellisium ©   (2014-12-04 09:34) [8]

ну в любом случае чего удивляться, что в базе данных MS SQL и в Delphi нулевая дата отличается. А в Oracle еще другая дата. Unix эпоха еще другая.


 
Кщд ©   (2014-12-04 10:35) [9]

>Ellisium ©   (04.12.14 09:34) [8]
никто, кроме ТС, не удивляется
что сказать-то хотели?


 
junglecat ©   (2014-12-04 10:49) [10]

Старинная легенда гласит:
Началось это с Микрософта, остальные сделали для совместимости.
0 предполагалось в качестве даты-времени старта нового века.
Однако, когда Микрософт приобрел Эксель, нужно было обеспечить совместимость с Лотус 1-2-3. А в Лотус 1-2-3 был баг в отношении 1900 года: оно думало, что это високосный год, в то время как 1900 - не високосный.
Для обеспечения совместимости команда Экселя решила ввести этот баг в Эксель.
Таким образом, чтобы дата не уехала, 0 на самом деле представляет собой 01.01.1900 минус 1 день.


 
Ega23 ©   (2014-12-04 10:52) [11]

Я бы с сотворения мира предпочёл. А то как-то однобоко выходит.


 
Inovet ©   (2014-12-04 16:04) [12]

> [11] Ega23 ©   (04.12.14 10:52)

По этому вопросу тоже разногласия.


 
Ega23 ©   (2014-12-04 16:41) [13]


> По этому вопросу тоже разногласия.


Никаких. Ибо время было сотворено одновременно с миром.


 
Dimka Maslov ©   (2014-12-04 17:46) [14]


> Я бы с сотворения мира предпочёл. А то как-то однобоко выходит.


Боюсь нам тогда 64 бит скоро не хватит. Ведь от сотворения мира прошло порядка 4.3e+17 секунд, а в целое число влезает не более 1.84e+19


 
Inovet ©   (2014-12-04 17:57) [15]

Это смотря у кого. У одних 7000 лет, а у буддистов точно известена длительность одного цикла 311 триллионов 40 миллиардов лет, а вот

В отношении вопроса о том, было ли начало мировых циклов, имеет ли начало сама сансара, буддизм не даёт никакого ответа. Этот вопрос, подобно вопросу о конечности или бесконечности мира, относится к так называемым «неопределённым», «не имеющим ответа» вопросам, по поводу которых Будда хранил «благородное молчание».


 
Inovet ©   (2014-12-04 18:02) [16]

> [15] Inovet ©   (04.12.14 17:57)

https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BB%D1%8C%D0%BF%D0%B0


 
Jeer ©   (2014-12-04 22:33) [17]

Госпидя.. у меня же и спрашивать начинают - в чем вопрос.

Да нет у меня вопросов давно уже ни к кому и даже удивлений тоже нет.

Всего лишь, на собственном примере показал, что когда начинаешь решать что-то по быстрому и в рамках "трафарета" одной среды, то легко спотыкаешься на ровном месте.

На решение ушло мин. 5, потом "освежение" памяти по поводу типа данных.
Иногда что-то вроде "простое" элементарно вылетает из головы, когда уходишь от накатанного и проверенного пути.

В MSSQL давно уже введены новые типы данных ( дата-времени ): datetime2 0001-01-01 00:00:00 ... 9999-12-31 23:59:59.9999999), datetimeoffset, smalldatetime.
Старое же datetime (1753-01-01 00:00:00 ...9999-12-31 23:59:59.997)


 
Ega23 ©   (2014-12-04 22:38) [18]


> datetime2 0001-01-01 00:00:00 ... 9999-12-31 23:59:59.9999999


Няужто дискретизацию в 3 миллисекунды решили???


 
Jeer ©   (2014-12-04 23:03) [19]

Дискретизация это вовсе не слайс времени на платформе.


 
Ega23 ©   (2014-12-04 23:14) [20]

Дискретизация - это то, что раньше в datetime влезало. Округлялось до 0, 3 или 7 миллисекунд, что немудрено, учитывая как это число интерпретировалось.


 
Кщд ©   (2014-12-05 09:38) [21]

>Jeer ©   (04.12.14 22:33) [17]
>Всего лишь, на собственном примере показал, что когда начинаешь решать >что-то по быстрому и в рамках "трафарета" одной среды, то легко ?>спотыкаешься на ровном месте.

что никак не следует из первого поста
недоумение вызвали "откровения" от кэпа


 
Jeer ©   (2014-12-05 11:51) [22]

Удалено модератором


 
Ega23 ©   (2014-12-05 11:53) [23]

Удалено модератором


 
Jeer ©   (2014-12-05 11:56) [24]

Удалено модератором


 
Ega23 ©   (2014-12-05 12:03) [25]

Удалено модератором


 
Кщд ©   (2014-12-05 14:43) [26]

Удалено модератором


 
Ellisium ©   (2014-12-05 18:22) [27]

Удалено модератором


 
Jeer ©   (2014-12-05 19:46) [28]

Удалено модератором


 
KilkennyCat ©   (2014-12-05 23:01) [29]

Удалено модератором


 
Inovet ©   (2014-12-06 00:50) [30]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2015.09.10;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.056 c
15-1415633204
megavoid
2014-11-10 18:26
2015.09.10
Телефон на андроиде сам лазит в мобильную сеть


15-1420229087
Дмитрий С
2015-01-02 23:04
2015.09.10
Своя программа или сервис


15-1412333277
Jeer
2014-10-03 14:47
2015.09.10
Лучшие книги 21-го века


15-1419974533
Ega23
2014-12-31 00:22
2015.09.10
Случайно наткнулся


15-1418160605
Юрий
2014-12-10 00:30
2015.09.10
С днем рождения ! 10 декабря 2014 среда