|
|
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
1) таймзоны в DateTime полях Вопрос навеян исключительно статями данного форума (например: http://www.sql.ru/forum/311647/datetime-or-int?hl=datetime timestamp) Всю жизнь хранил даты в datetime полях, и тут вдруг бах, вижу что народ говорит что в них есть косяки, что при переходе с зимнего на летнее время есть проблемы. Вроде десятки раз менялись зоны, но никогда не видел чтобы в время менялось после перехода с зимнего на летнее. Актуальная ли это проблема? 2) диапазон timestamp В документации написано что в timestamp ограниченный диапазон значений - с 1970 по 2038 год Почему он такой короткий? Ведь поле timestamp - 4 байта! 4 байта = 4 294 967 296 значений делим на 60 секунд, 60 минут, 24 часа, 366 дней, и получаем что в четырёх байтах мы можем хранить более 135 лет! Почему тогда в timestamp можно хранить только 68 лет? 3) хранение одновременно и даты создания записи и даты изменения timestamp даёт возможность отслеживать время создание записи или время изменения. Почем нельзя иместь сразу два автовычисляемых поля timestamp (чтобы значть и когда поле создалось и когда модифицировалось в последний раз)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2013, 18:26:49 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
InterSky, 2, там может быть отрицательное значение, если надо дата раньше 1970 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2013, 12:47:31 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
1) Мало ли кто что говорит... у тебя нет этой проблемы? точную методику её воспроизведения сыскал? а кооли нет - чё дёргаться раньше времени... 3) Не так. Или первого изменения (т.е. создания), или последнего. Два поля - скажем во второе копируешь из первого в триггере after insert. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2013, 21:48:57 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
artas2, там может быть отрицательное значение, если надо дата раньше 1970 Попробуй выполнить: UPDATE Table SET PoleTimeStamp='1970-01-01' WHERE id=1 и получишь ошибку! Incorrect datatime value '1970-01-01' for column 'PoleTimeStamp' at row 1 в это поле можно вносить только значения начиная с 1970-01-01 00:00:01', если мне надо раньше 1970 - то я это поле не могу использовать! Akina1) Мало ли кто что говорит... у тебя нет этой проблемы? точную методику её воспроизведения сыскал? а кооли нет - чё дёргаться раньше времени... Ища информацию на этом форуме я дважды наткнулся на упоминание сдешних посетителей об этой проблеме, и ни одного опровержения. По этому и поинтересовался, так как до этого не слышал о такой проблеме (и ссылку на один из топиков на этом форуме указал). Akina3) Не так. Или первого изменения (т.е. создания), или последнего. Два поля - скажем во второе копируешь из первого в триггере after insert. Ну если создавать тригеры, то можно и вовсе обойтись без функционала полей timestamp, просто текущее время вносишь в нужное поле и всё... Мой же вопрос: Почему нельзя иместь сразу два автовычисляемых поля timestamp (поставив одному отмечать дату создания, а второму дату изменения записи)? В чём причина такого ограничения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 03:45:23 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
InterSkyИща информацию на этом форуме я дважды наткнулся на упоминание сдешних посетителей об этой проблеме, и ни одного опровержения. По этому и поинтересовался, так как до этого не слышал о такой проблеме (и ссылку на один из топиков на этом форуме указал). По ссылке НИЧЕГО нет. Кроме абстрактного указания на то, что значение поля типа TIMESTAMP заносится и отдаётся с учётом локальной временнОй зоны. По-моему, вполне нормальное положение вещей. А если кто-то не помнит таких вещей или неспособен учитывать их, и это У НЕГО вызывает проблемы - то это проблемы не типа данных, а программиста. Ну и вообще: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. Поле ts1 хранит штамп времени создания записи, поле ts2 либо ноль, либо штамп времени фактического изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 09:13:37 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
AkinaПоле ts1 хранит штамп времени создания записи, поле ts2 либо ноль, либо штамп времени фактического изменения. Вообще-то проблема возникает раньше. Уже на стадии: Код: sql 1. 2. 3. 4. Получаем: MySQL 5.5.8SQL execution error # 1293. Response from the database: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 13:33:53 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
InterSkyВообще-то проблема возникает раньше. Уже на стадии: А на 5.6.10 работает. Я для кого консоль цитирую, а? Обнови версию, и забудь о проблеме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 14:08:46 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
AkinaА на 5.6.10 работает. Я для кого консоль цитирую, а? Обнови версию, и забудь о проблеме. Круто! Хоть что-то пофиксили, а то лет 10 проблема была :) А есть где-то на русском подробное описание что нового в 5.6 по сравнению с 5.5 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 17:16:09 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
только если используются переменные для нумерации - на 5.6.+ работать перестанет)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 10:28:19 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
InterSkyAkinaА на 5.6.10 работает. Я для кого консоль цитирую, а? Обнови версию, и забудь о проблеме. Круто! Хоть что-то пофиксили, а то лет 10 проблема была :) А есть где-то на русском подробное описание что нового в 5.6 по сравнению с 5.5 ? :) ну на фоне проблемы была и слабодокументированная возможность поле 1 - меткавремени без умалчиваемого значения разрешено НУЛЛ поле 2 - меткавремени по умолчанию текущее при обновлении текущее но вот хитрость. в поле один нельзя записать нулл, тип не поддерживает, поэтому при вставке новой записи не указывая оба поля, получим в обоих текущую метку. потом при обновлениях будет обновляться только вторая у меня на том и держаться поля ctime mtime :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 03:31:36 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
Cygapb-007только если используются переменные для нумерации - на 5.6.+ работать перестанет)) К сожалению совершенно не понял смысла ваших слов :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 23:01:59 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, Идея интересная, но не является ли она чисто теоретической? Потому что когда я создаю таблицу запросом: Код: sql 1. 2. 3. 4. и потом смотрю DLL - то вижу что MySQL преобразовал её в: Код: sql 1. 2. 3. 4. и если я пытаюсь создать ещё одно поле с timestamp с условиями - то получаю сообщение о том что два таких поля нельзя: MySQL 5.5.8SQL execution error # 1293. Response from the database: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 23:24:36 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
InterSky, я же написал, у меня так работает. счас посмотрю каким кодом создавалась база, ибо давно работаю мышкой в кейс средствах проектирования БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 00:54:23 |
|
||
|
три вопроса про хранение Даты
|
|||
|---|---|---|---|
|
#18+
InterSkyalex564657498765453, Идея интересная, но не является ли она чисто теоретической? Потому что когда я создаю таблицу запросом: Код: sql 1. 2. 3. 4. и потом смотрю DLL - то вижу что MySQL преобразовал её в: Код: sql 1. 2. 3. 4. и если я пытаюсь создать ещё одно поле с timestamp с условиями - то получаю сообщение о том что два таких поля нельзя: MySQL 5.5.8SQL execution error # 1293. Response from the database: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause ёшкин кот, я же написал пооле для даты создания - без значени по умолчанию РАЗРЕШЕНО НУЛЛ!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 00:57:29 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38468510&tid=1835668]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 328ms |

| 0 / 0 |
