Автор Тема: Firebird 1.5 + Дата  (Прочитано 4267 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
Firebird 1.5 + Дата
« : 12 Декабря 2005, 18:25:18 »
вот такая задача:

select count(*) from table_name where ...

вот после WHERE нужно определить условие, чтобы выделялись даты за сегодняшний день

Пробовал всяко - не выходит

Спасибо всем!
Пространные размышления об ИТ и все что вокруг

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
Firebird 1.5 + Дата
« Ответ #1 : 15 Декабря 2005, 09:04:14 »
ещё такая фигня получается засовываю в базу дату в формате d.mY

Смотрю в поле - все нормально, в таком виде и хранится, начинаю выводить, получается странная перестановка: m.d.Y

кто знает, как это обойти?

есть конечно вариант такой: обработать строку вывода и переставить элементы... но может дело в другом..?
Пространные размышления об ИТ и все что вокруг

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Firebird 1.5 + Дата
« Ответ #2 : 19 Декабря 2005, 11:54:51 »
Цитировать
Greg:
Пробовал всяко - не выходит


Вместо того что бы гадать лучше взгляни в MAN
SELECT count(*) FROM tbl WHERE dt = NOW()

Смотрю в поле - все нормально, в таком виде и хранится, начинаю выводить, получается странная перестановка: m.d.Y

Для твоего случая разработчики MySQL специально придумали поле с форматом DATE(yyyy-mm-dd) пользуйся им.
[off]Безработный[/off]

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
Firebird 1.5 + Дата
« Ответ #3 : 19 Декабря 2005, 12:03:25 »
Цитировать
for_i_0:
Для твоего случая разработчики MySQL

for_i_0
заголовок внимательней прочитай

Цитировать
for_i_0
SELECT count(*) FROM tbl WHERE dt = NOW()

там ещё и время хранится, поэтому не покатит - будет искать только те, что имеют и настоящее время
Пространные размышления об ИТ и все что вокруг

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
Firebird 1.5 + Дата
« Ответ #4 : 26 Декабря 2005, 13:03:33 »
ну, что? никто ничего не знает?

а у меня ещё такая проблемка: в Interbase никак не хочет работать конструкция INTERVAL для прибавления определенного промежутка времени к существующей дате... ну ни в какую!

Может кто чем поможет?
Пространные размышления об ИТ и все что вокруг

Vladimir D Belousov

  • Гость
Firebird 1.5 + Дата
« Ответ #5 : 07 Января 2006, 00:14:28 »
А какой диалект и какой тип поля dt?
Подозреваю (в случае 3-его диалекта и TIMESTAMP), что требуется делать примерно так:

SELECT count(*) FROM atable WHERE CAST(dt AS DATE) = TODAY;

Vladimir D Belousov

  • Гость
Firebird 1.5 + Дата
« Ответ #6 : 07 Января 2006, 00:19:28 »
И какие проблемы с INTERVAL?
К TIMESTAMP можно прямо прибавлять числа (N, например), где целая часть N - количество дней, а дробная - количесво десятитысячных долей сек. в дне

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
Firebird 1.5 + Дата
« Ответ #7 : 11 Января 2006, 08:34:54 »
Цитировать
И какие проблемы с INTERVAL?
К TIMESTAMP можно прямо прибавлять числа (N, например), где целая часть N - количество дней, а дробная - количесво десятитысячных долей сек. в дне


с этим уже разобрался, но спасибо всё равно

Цитировать
SELECT count(*) FROM atable WHERE CAST(dt AS DATE) = TODAY;


насколько я понял, вместо TODAY подставляем текущую дату, извлекая её средствами PHP. По крайней мере, этот вариант работает
Пространные размышления об ИТ и все что вокруг

ilias1979

  • Гость
Firebird 1.5 + Дата
« Ответ #8 : 13 Января 2006, 13:58:55 »
select count(*) from table_name where date>\'13.01.2006\' and date<\'14.01.2006\'

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28