Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сравнение даты и вывод (Сегодня "data", Вчера "data") / 6 сообщений из 6, страница 1 из 1
11.11.2013, 17:42:28
    #38460810
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение даты и вывод (Сегодня "data", Вчера "data")
если дата = текущей->Сегодня 16:11:11
если дата = текущей-1->Вчера 16:11:11
если дата = текущей-2->Позавчера 16:11:11
в других случаях оставить как есть

я делал так:
Код: sql
1.
SELECT if(TIMESTAMPDIFF(Day, `Update`, Now())=0,CONCAT( 'Сегодня ',Time(`Update`)),'') `dt` FROM Stock


но я не совсем уверен что это лучший вариант, притом нужно еще три условия добавлять
подскажите как лучше написать
...
Рейтинг: 0 / 0
11.11.2013, 17:52:06
    #38460838
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение даты и вывод (Сегодня "data", Вчера "data")
Код: sql
1.
2.
3.
4.
5.
6.
SELECT CASE TIMESTAMPDIFF(Day, `Update`, Now())
   WHEN 0 THEN CONCAT( 'Сегодня ',Time(`Update`))
   WHEN 1 THEN CONCAT( 'Вчера ',Time(`Update`)) 
   WHEN 2 THEN CONCAT( 'Позавчера ',Time(`Update`))
ELSE `Update` 
END as `dt` FROM `Stock`



написал так... норм?
...
Рейтинг: 0 / 0
11.11.2013, 17:59:38
    #38460854
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение даты и вывод (Сегодня "data", Вчера "data")
Работает? результаты даёт верные? если да - то чего ещё нехватает?
...
Рейтинг: 0 / 0
11.11.2013, 18:17:11
    #38460892
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение даты и вывод (Сегодня "data", Вчера "data")
все работает, но я как всегда ищу самые быстрые и оптимальные решения))
т.к. я это накатал сходу, может есть что-то лучше
просто я с функциями работы с датой не работал и не знаю плюсов и минусов))
...
Рейтинг: 0 / 0
11.11.2013, 18:55:02
    #38460937
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение даты и вывод (Сегодня "data", Вчера "data")
Ну тут разве что можно оптимизировать порядок вариантов в кейсе. Если, к примеру, секция ELSE наиболее часто встречающаяся - есть смысл пересмотреть порядок проверки, вплоть до перехода на вторую версию кейса.
...
Рейтинг: 0 / 0
12.11.2013, 10:50:27
    #38461474
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение даты и вывод (Сегодня "data", Вчера "data")
Код: sql
1.
2.
3.
4.
5.
6.
SELECT CASE DATEDIFF(Now(),`Update`)
	WHEN 0 THEN CONCAT( 'Сегодня ',Time(`Update`))
	WHEN 1 THEN CONCAT( 'Вчера ',Time(`Update`)) 
	WHEN 2 THEN ( 'Два дня назад ')
	ELSE `Update` 
	END as `upd` `Stock`



вот более правильный вариант, т.к. прошлый код выдавал не то, что нужно
т.е. если было бы:
Код: sql
1.
SELECT TIMESTAMPDIFF(Day,"2013-11-11 10:23:07" , "2013-11-12 10:20:07")


то выдавал 0, т.к. еще учитывалось и время!
если же один из параметров даты без времени, то в таком случае время уже не будет учитывать (скорее всего сравнивается с 00:00:00) и будет верный результат
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сравнение даты и вывод (Сегодня "data", Вчера "data") / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]