Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.03;
Скачать: CL | DM;

Вниз

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

 
Шакал ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.13 c
2-1178800180
Deled
2007-05-10 16:29
2007.06.03
перезагрузка


15-1178708842
Andy BitOff
2007-05-09 15:07
2007.06.03
Утечка памяти в ядре Linux


2-1178975814
Calibr
2007-05-12 17:16
2007.06.03
Распадание картинки


6-1164192086
>>DEATH<<
2006-11-22 13:41
2007.06.03
трафик


3-1173870366
Iris
2007-03-14 14:06
2007.06.03
Как программно добавить в DbGrid показ новой колонки?