Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найти разницу дат кроме определенного формата, найти разницу дат 
:(
    Опции темы
256zib
Дата 13.10.2010, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 7.12.2009

Репутация: нет
Всего: нет



Здравствуйте!

У меня есть две колонки с датами, мне нужно найти разницу во времени у этих дат ,КРОМЕ тех, у которых вид 01.01.2000, в этом случае вывести пустую строку.

Разницу нахожу например так:

CAST (DATEPART (hour, CAST((trans.TimeExit-trans.TimeEntry) as datetime)) as varchar(3)) +':'+
CAST(DATEPART (minute, CAST((trans.TimeExit-trans.TimeEntry) as datetime)) as varchar(3)) +':'+
CAST(DATEPART (second, CAST((trans.TimeExit-trans.TimeEntry) as datetime)) as varchar(3))
)  AS Time

а как добавить условия без 01.01.2000?
PM MAIL   Вверх
Akina
Дата 13.10.2010, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Код

CASE 
 WHEN date="01.01.2000"
  THEN ""
 ELSE
  [твой ужастик]
END



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
256zib
Дата 13.10.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 7.12.2009

Репутация: нет
Всего: нет



Спасибо! А скажите пожалуйста как переписать этот "ужастик" в нормальный код? нужно отобразить час, минуту, секунду ))
PM MAIL   Вверх
Akina
Дата 13.10.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(256zib @  13.10.2010,  15:39 Найти цитируемый пост)
нужно отобразить час, минуту, секунду 

Ну так сразу форматируй всё время, а не по частям.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
256zib
Дата 13.10.2010, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 7.12.2009

Репутация: нет
Всего: нет



Как? Если я делаю CAST (DATEPART (hour,minute,second, CAST((trans.TimeExit-trans.TimeEntry) as datetime)) as varchar(3)), то не получается *(
PM MAIL   Вверх
Akina
Дата 13.10.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Я не понимаю...
1) Какой формат имеет trans.TimeExit-trans.TimeEntry? почему его надо конвертировать в дату-время?
2) Почему ты не хочешь использовать в CAST нумерованные форматы?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
256zib
Дата 13.10.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 7.12.2009

Репутация: нет
Всего: нет



мне нужно вывести в таблицу в таком виде: hh:mm:ss. 
trans.TimeExit и trans.TimeEntry имеет тип datetime

Как использовать в CAST нумерованные форматы? у меня не получается подставить форматы, может не те форматы или не так ставлю?
PM MAIL   Вверх
Akina
Дата 13.10.2010, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Код

CONVERT(datetime, (trans.TimeExit-trans.TimeEntry), 8)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
jang
Дата 13.10.2010, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



спасибо! ;)
PM MAIL Skype   Вверх
jang
Дата 18.10.2010, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



Но смотри, если я вывожу в таблицу тип datetime, а у меня в результате разницы дат остается только время, например 02:11:03, при таком случае отображаются левые даты. Короче есть ли в SQL тип только времени, чтобы он выводил только время, без даты? )
PM MAIL Skype   Вверх
Akina
Дата 18.10.2010, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(jang @  18.10.2010,  11:23 Найти цитируемый пост)
есть ли в SQL тип только времени

Как правило нет - а если и да, то используется формат даты-времени, но дата игнорируется (очищается при сохранении либо игнорируется при использовании, в т.ч. выводе).

Цитата(jang @  18.10.2010,  11:23 Найти цитируемый пост)
чтобы он выводил только время, без даты

Ты вообще хранение и отображение хранимого как-нить различаешь? или для тебя это одно и то же? 
Как вывести только время - сказано выше.

Цитата(jang @  18.10.2010,  11:23 Найти цитируемый пост)
при таком случае отображаются левые даты

А условия отбора кто за тебя писАть будет, а?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.