|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Ну т.е. тут недавно был предложен следующий корректный, так сказать, универсальный с т.зр. национальных предрассудков формат "запихивания" в БД Access, а именно: Код: plaintext
Но у меня в проге помимо БД-представления существует txt-представление, и хоть я и принял "модель БД" для хранения "много строчек", но по историческим причинам во многих местах проги использую txt-формат (при работе с конкретной "строчкой"). Т.е. напр. БД-представление: Код: plaintext
Код: plaintext
Сейчас в связи с модернизацией (ну раз БД впихнул, стало быть "гулять так гулять") надо добавить в БД в таблицу еще 3 поля вышеуказанного класса "Дата-время". Дебильное txt-представление Date1=..;Time1= что-то не нравится уже, да и обработка накладная... Разумно ли в качестве txt-представления использовать: Код: plaintext
Т.е. Код: plaintext 1. 2. 3.
....Тэкс..попробовал чего написал...ерунда получается потому что вытащив из длинной строки DateTime я получу "#02/10/2011 22:46:28#" (String) а не #02/10/2011 22:46:28# (ДатаВремя) А мне нужен String но скажем в нац. формате. Т.е. cstr(#02/10/2011 22:46:28#)-->> "10.02.2011 22:46:28" (нац. формат) -это понятно А как тогда? "#02/10/2011 22:46:28#" (Str)-->> "10.02.2011 22:46:28" (нац. формат Str) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 23:21 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Чтобы было наверняка, нац. формат нужно вытащить из региональных настроек с помощью апи, которой я не помню, и подставить в Format. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 02:06 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Дас, проблема... Вот энтот тестовый кусок кода ее показывает: Код: plaintext 1. 2. 3. 4. 5. 6.
Я могу конечно писать как dt_str = "2/10/2011 22:46:28", но тогда на russian computers будет 2 октября а не 10 февраля, как положено. Т.е. без "собственного конвертера" все равно не обойдусь. Посему можно и не менять ничего и делить время и дату на 2 "txt-поля" как и делал...даб не изобретать новой такой же ерунды.. Или тупо писать String в нац.формате CStr(the_asDate), но эт еще большая ерунда, собственное кодирование в каком-то одном формате хотя бы надежно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 02:12 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Если я не ошибаюсь, должно работать DT = #2/10/2011 22:46:28# без всяких кавычек. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 02:14 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
AntonariyЧтобы было наверняка, нац. формат нужно вытащить из региональных настроек с помощью апи, которой я не помню, и подставить в Format. Да не, всю "кухню" надо оставлять как есть. В БД я пишу, как рекомендовали: Код: plaintext 1. 2. 3. 4. 5.
Из БД его достаем как Date. Ну а уж в String dateN1=mm.dd.yyyy;timeN1=hh:mm:ss;dateN2=mm.dd.yyyy;timeN2=hh:mm:ss;... Ну обратно соотв. serial date/time =>GetMyAccessDateTime по крайней мере это не сглючит... AntonariyЕсли я не ошибаюсь, должно работать DT = #2/10/2011 22:46:28# без всяких кавычек. Естественно, но я бухаю всю запись из БД в одну строчку типа: field1=value1;field2=value2;field3=value3;... и при доставании из этой строки "без кавычек" никак не будет. Чтобы так не делать, надо оч. много везде поменять, что нерентабельно думаю ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 02:25 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Дмитрий77, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 04:51 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
упс... поторопился. Неправильно работает. при dt_str = "22/10/2011 22:46:28" выдает 22 октября ... Сорри. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 04:57 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Нормально отрабатывает с представленим входной строки в формате "yyyy/mm/dd hh:mm:ss". И функция Format оказалась излишеством. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 05:27 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Придется, наверное, парсить: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 06:28 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Дмитрий77, если хранить дату в строке, то я бы хранил ее в виде строки из 14 цифровых символов. Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 09:48 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
ZVIПридется, наверное, парсить:... Ну, похоже к этому все и сводится Код: plaintext
Придумывать yyyy-dd/mm , не охота, споткнется где-нибудь случайно, слишком заумно. Идея была в том чтоб универсально вписать дату/время в строчку, чтоб максимально просто работать с "универсальным", но при этом текстовым представлением. Т.е. при доставании из БД я пишу в "свой формат". При пихании в БД я именно парсю этот формат, использую SerialDate/Time и национальную строчку конвертирую в Access формат (хотя нац. формата SerialDate & " " SerialTime уже считаю достаточно, ну да бог с ним спорили уже). Т.е. по сути это равносильно предложенному... Шило на мыло при уже имеющихся проверенных функциях думаю менять смысла нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 14:55 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Если есть возможность, то даты лучше хранить как числа (As Double), тогда конвертация заключается только в изменении типа с помощью CDate(DoubleValue). Если по каким-то причинам нужно даты хранить как текст, но так как даты - это те же числа As Double, то можно тупо хранить эти числа в текстовом формате. Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Если уже есть что-то, пусть кривое, но работает, то обычно его лучше не трогать :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 19:24 |
|
Поговорим о датах
|
|||
---|---|---|---|
#18+
Подправил ToDate и для чисел: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2011, 20:29 |
|
|
start [/forum/topic.php?fid=60&fpage=108&tid=2158958]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 142ms |
0 / 0 |