Резултати от 1 до 7 от общо 7

Проблем с датите в SQL

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. Junior Member
    Тук е от
    Aug 2005
    Мнения
    31
    #1

    Проблем с датите в SQL

    Здравейте,
    Прилижението, което пиша на Делфи ползва база данни на Access и имам следния проблем.
    Налага се да направя заявка от рода:

    'SELECT Table1.Field1, Table1.Date1 INTO Table2'
    'FROM Table1'
    'WHERE (([table1].Date1) Between #'+Променлива+'# AND #'+Променлива+'#));'

    Всичко работи добре с една малка особенност.
    Датите са във вид dd/mm/yyyy, но SQL-а ги изпълнява аъв вид mm/dd/yyyy.
    T.e. ако датата е 02/04/2008 (02 април), SQL-а го изпълнява като 04 февруари.
    За дати, които са число по голямо от 12, например 13/04/2009 (13 април), заявките се изпълняват коректно, т.е. взима си го като 13 април.

    Как мога да избегна това?

  2.  
     
  3. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #2

    Re:Проблем с датите в SQL

    При теб какво пише за датите в регионалните настойки на Windows?
    Защото той от там се ориентира в какъв ред му ги подаваш.

  4. Junior Member
    Тук е от
    Aug 2005
    Мнения
    31
    #3

    Re:Проблем с датите в SQL

    В момента в настройките на Windows формата на датата е Bulgarian във вид dd/mm/yyyy.

    Когато обърна формата в настройките на mm/dd/yyyy всичко работи перфектно. Но на мен това не ми върши работа, защото се предполага, че програмата трябва да работи незавизимо какви са настройките на потребителя.

  5. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #4

    Re:Проблем с датите в SQL

    Опитай да сложиш CDate() или DateDiff() в условието.

    Примерно така:
    'WHERE (([table1].Date1) Between CDate(#'+Променлива+'#) AND CDate(#'+Променлива+'#));'

    Защото при дати "<" действа необичайно, според това, което тествах.

  6. Senior Member
    Тук е от
    Feb 2003
    Мнения
    2,351
    #5

    Re:Проблем с датите в SQL

    или пробвай да добавиш в началото на програмата следното:
    Код:
     ShortDateFormat := 'mm.dd.yyyy';
     LongDateFormat := 'mm.dd.yyyy';

  7. Member
    Тук е от
    Feb 2006
    Мнения
    649
    #6

    Re:Проблем с датите в SQL

    Малко повече работа е и може вече да е късно но в базата аз набутвам датата под следния формат ггггммдд. До сега не съм имал проблеми след това, обработката до нормален вид е играчка но...както човек си реши

  8.  
     
  9. Junior Member
    Тук е от
    Aug 2005
    Мнения
    31
    #7

    Re:Проблем с датите в SQL

    Благодаря на всички, който помогнаха.
    След няколко безуспешни опити да променям какво ли не и да пипам по базата, най-накрая успях.
    Всъщност по-лесния начин се оказа като просто променя формата на двете променливи, които подават датите, на мм/дд/гггг. Така всичко работи независимо от указания формат в базата и от настройките на win.

    Понякога най-доброто решение е най-простото ама кой да го види....

Сподели във Facebook Сподели в Google Plus Сподели в Twitter Изпрати на Email Сподели в LinkedIn

Подобни теми

  1. Разлика в датите
    От Sunny във форум За Форума
    Отговори: 8
    Последно: 21-04-04, 20:53

SetCombG.com
SetCombG.com е портален сайт и Форум за битова техника, телевизори, климатици, лаптопи и смартфони, създаден през 1999 година.
Заедно сме над 20 години!
Следвай ни
Горе