Главная страница
    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.044 c
15-1178841415
P
2007-05-11 03:56
2007.06.03
Округление


1-1175692451
Damager
2007-04-04 17:14
2007.06.03
TJvCheckTreeView


6-1164369545
Sanek_sd
2006-11-24 14:59
2007.06.03
как обработать данные?


2-1179163206
Просто_новичок
2007-05-14 21:20
2007.06.03
Создание массива при работе приложения.


15-1178545424
Сатир
2007-05-07 17:43
2007.06.03
Восстановление Windows XP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский