Форум: "Прочее";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];
ВнизРешил по быстрому Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.061 c