|
|
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
В базе MySQL есть поле finish_time типа DATETIME. Там хранится 2017-07-17 19:01:00. Но при прочтении finish_time := ADQuery1.FieldByName('finish_time').AsDateTime, в finish_time оказывается значение 2017-07-17 19:00:59. Из-за этого неправильно высчитывается количество часов и минут между двумя временами. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Т.е. здесь он высчитывает 30 минут. Когда в базе было 2017-07-17 19:00:00, он высчитывал 29 минут, приходится вот к таким ухищрениям прибегать, указывать время на 1 минуту больше, чтобы было 30 минут. В чем причина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:24:33 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
В чем причина? Обычное дело. Округления. С ними часто подобные проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:30:18 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
LSVВ чем причина? Обычное дело. Округления. С ними часто подобные проблемы. А как быть-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:31:49 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
svnvladLSVпропущено... Обычное дело. Округления. С ними часто подобные проблемы. А как быть-то? Хранить время в целом числе. Например, в https://www.cy-pr.com/tools/time/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:42:53 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
да первый раз слышу чтобы точность TDateTime убегала за 1 секунду везде написано про миллисекунды. и это действительно так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:53:06 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
krapotkinпервый раз слышу чтобы точность TDateTime убегала за 1 секунду В VCL есть подколка с флагами сопроцессора, которые резко понижают точность арифметики, которая используется для перевода из нормальных форматов в TDateTime. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:03:14 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
Я какбэ все эти программы писал на VCL. Когда же этот флаг начинает работать? и что дают варианты: Код: pascal 1. 2. 3. 4. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:14:56 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
krapotkinКогда же этот флаг начинает работать? Когда какая-нибудь левая библиотека его устанавливает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:27:32 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
krapotkin, Код: pascal 1. 2. 3. Не совсем понял, как, зная float значение, проверить, правильно ли осуществился перевод в DateTime. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:34:29 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
хотя, в принципе, понял, что хотел сказать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:40:01 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
wadmansvnvladпропущено... А как быть-то? Хранить время в целом числе. Например, в https://www.cy-pr.com/tools/time/ Это отразится на работе визуальных элементов типа tcxDateEdit? Или только в базе изменения будут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:46:18 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
Допустим я завел переменную IntDateTime: integer; Как в нее теперь прочитать данные типа DATETIME из базы? И как это целое число запихать в tcxDateEdit? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:49:40 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
svnvladДопустим я завел переменную IntDateTime: integer; Как в нее теперь прочитать данные типа DATETIME из базы? И как это целое число запихать в tcxDateEdit? Сказали же вам, поможет только хранение дат в Unix time, ну или string для большей точности. Пока время храниться в DATETIME, погрешности будут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 17:01:43 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
Может просто компоненты доступа через которые вы забираете данные из БД такой эффект дают. Попробуйте другие, может у них такой проблемы не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 18:27:31 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
Вроде в MySQL DATETIME хранится как Integer и в зависимости от версии занимает от 5 до 8 байт. Попробуйте прочитать его как 5-8 байт и примените алгоритм получения даты согласно битовой маске из этой статьи согласно вашей версии MySQL https://dev.mysql.com/doc/internals/en/date-and-time-data-type-representation.html И посмотрите что получится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 22:08:35 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
krapotkin, Никогда не видел, что бы Now глючил из-за потери точности? ) А я видел. С трудом отбились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 09:40:15 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
Был бы mysql нормальным сервером можно было бы хранимкой на стороне сервера все посчитать чтобы проблем было меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 10:56:44 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
makhaonkrapotkin, Никогда не видел, что бы Now глючил из-за потери точности? ) А я видел. С трудом отбились.А как? Флаги сопроцессору выставляли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 21:15:18 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
bk0010, SetPrecisionMode(pmExtended) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 23:33:42 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 21:15:44 |
|
||
|
Неправильное прочтение TDateTime из базы
|
|||
|---|---|---|---|
|
#18+
X-CiteВроде в MySQL DATETIME хранится как Integer и в зависимости от версии занимает от 5 до 8 байтНа клиент отдается структура datetime эндиБыл бы mysql нормальным сервером можно было бы хранимкой на стороне сервера все посчитать чтобы проблем было меньше.И что мешает написать хранимку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2017, 14:13:50 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39499621&tid=2041962]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
196ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 544ms |

| 0 / 0 |
