Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];

Вниз

Сортировка по дате   Найти похожие ветки 

 
Шакал ©   (2007-05-14 10:05) [0]

Уважаемые мастера, нуна помощь!!
нужно по дате сортировать... пишу "select * from kadry order by Дата"
он сортирует, но только по первому числу (по дате) а месяц и год неучитывает
формат даты в столбе дд.мм.гггг


 
Knight ©   (2007-05-14 10:08) [1]

Строкой что-ли? Тогда наоборот делай... гггг.мм.дд


 
Шакал ©   (2007-05-14 10:20) [2]

тогда он будет по году сортировать(((
а я хочу что бы по всем трем числам сортировал..


 
Knight ©   (2007-05-14 10:21) [3]

> [2] Шакал ©   (14.05.07 10:20)

Тогда точки убери :)


 
Knight ©   (2007-05-14 10:24) [4]

Или попробуй вместо стринга, нормальный датовский формат... или формат даты юникс.


 
Knight ©   (2007-05-14 10:24) [5]

> [0] Шакал ©   (14.05.07 10:05)

И всё-таки желательно указывать, что за СУБД...


 
Шакал ©   (2007-05-14 10:25) [6]

и что это за дата будет 14052007
у меня она визуальная...:(


 
Шакал ©   (2007-05-14 10:25) [7]

бд acces.....


 
Knight ©   (2007-05-14 10:35) [8]

В принципе, строка сортируется по порядку символов, т.е.

02.04.2007 < 14.05.2007 (0<1)
14.05.2006 < 14.07.2000 (5<7)

т.е. чтобы строка была отсортирована верно, надо, чтобы сперва шёл год, поом месяц, а потом день.


 
DVM ©   (2007-05-14 10:47) [9]


> Шакал ©

Дату надо хранить в формате даты, а не строкой, т.к. во-превых, это позволит быстро и по-человечески сортировать по этому критерию, а во-вторых занимает меньше места.

А если как ты говоришь, дата у тебя "визуальная" - то это не как не связано с представлением даты в самой базе. Показывать пользователю дату можно как угодно.


 
DVM ©   (2007-05-14 10:48) [10]


> т.е. чтобы строка была отсортирована верно, надо, чтобы
> сперва шёл год, поом месяц, а потом день.

не факт. 01 02 10 11 - отсортирует неверно.


 
Knight ©   (2007-05-14 10:52) [11]

> [10] DVM ©   (14.05.07 10:48)

Почему это?


 
Шакал ©   (2007-05-14 10:53) [12]

Всем спасибо....действитель в базе поля где хранятся даты стоял формат стринг, поменял на даты и все пошло :)
СПАСИБО


 
DVM ©   (2007-05-14 10:56) [13]


> Knight ©   (14.05.07 10:52) [11]
> > [10] DVM ©   (14.05.07 10:48)
>
> Почему это?

числа 1 2 10 11 стандартная функция сортировки отсортирует так : 1 10 11 2


 
Knight ©   (2007-05-14 10:58) [14]

> [10] DVM ©   (14.05.07 10:48)
> не факт. 01 02 10 11 - отсортирует неверно.



> [13] DVM ©   (14.05.07 10:56)
> числа 1 2 10 11 стандартная функция сортировки отсортирует
> так : 1 10 11 2


Куда пропали вдруг нули из СТРИНГА? :)))


 
Knight ©   (2007-05-14 11:04) [15]

to DVM

Мухлюете, батенька %)

Стандартная функция сортировки отсортирует так...

01
02
10
11


 
DVM ©   (2007-05-14 11:09) [16]


> Мухлюете, батенька %)

Есть немного :)


 
DVM ©   (2007-05-14 11:20) [17]


> Knight ©  

Вот так сортирует верно любые буквенно-цифровые строки

function MyCompare(ps1, ps2: PChar): integer;
const
 Digits = ["0".."9"];
var
 DigCnt: integer;
begin
 DigCnt := 0;
 while (ps1^ = ps2^) and (ps1^ <> #0) do
   begin
     Inc(ps1);
     Inc(ps2);
     Inc(DigCnt)
   end;
 result := integer(ps1^) - byte(ps2^);
 if (ps1^ = #0) or (ps2^ = #0) then exit;
 if ps1^ in Digits then
   begin
     if ps2^ in Digits then
       begin
         DigCnt := 0;
         while (ps1^ in Digits) do
           begin
             inc(DigCnt);
             inc(ps1)
           end;
         while (ps2^ in Digits) do
           begin
             dec(DigCnt);
             inc(ps2)
           end;
         if DigCnt <> 0 then result := DigCnt
       end
     else
       begin
         if DigCnt <> 0 then
           if (ps1-1)^ in Digits then result := 1;
       end;
   end
 else
   begin
      if ps2^ in Digits then
        if DigCnt <> 0 then
          if (ps1-1)^ in Digits then result := -1;
   end;
end;


 
fd979 ©   (2007-05-14 12:49) [18]

select * from kadry order by CDate(Дата)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.043 c
3-1173963658
Rhasta
2007-03-15 16:00
2007.06.03
Распределенные базы данных


15-1178371957
parus
2007-05-05 17:32
2007.06.03
Защита от автоматич. регистраций


5-1154942814
Nic
2006-08-07 13:26
2007.06.03
Научиться писать компоненты


3-1173944121
Jeeb
2007-03-15 10:35
2007.06.03
Резервное копирование MS SQL из Delphi


15-1178766213
Slider007
2007-05-10 07:03
2007.06.03
С днем рождения ! 10 мая





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский