Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 перевести строку в дату  [new]
jeannette
Member

Откуда:
Сообщений: 38
select CONVERT(datetime,CONVERT(varchar(8), getdate(), 104))
этот запрос не проходит.
Дело в том, что мне нужно от даты отрезать время и при этом тип должен остаться дата. Соответсвенно оставить просто
CONVERT(varchar(8), getdate(), 104) не могу
Подскажите, как быть?
29 июн 04, 15:23    [771791]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
select CONVERT(datetime,CONVERT(varchar(10), getdate(), 104))
29 июн 04, 15:25    [771796]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
FAQ
29 июн 04, 15:25    [771800]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
jeannette
Member

Откуда:
Сообщений: 38
to pkarklin
у меня же почти так и было... но по-любому, предложенный вариант тоже не работает

to Breakneck
я смотрела это уже, но как и говорила до этого, мне нужно, чтобы тип остался дата, а не строка!!! т.е. назад теперь из строки в дату перевести!
29 июн 04, 15:30    [771813]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
jeannette
to pkarklin
у меня же почти так и было... но по-любому, предложенный вариант тоже не работает


Исправлюсь. Мой вариант работает при русском языке для логина. А так при любом:

select CONVERT(datetime,CONVERT(varchar(10), getdate(), 104), 104)
29 июн 04, 15:32    [771820]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
Oleon
Member

Откуда:
Сообщений: 361
select CONVERT(datetime, CONVERT(varchar(11), getdate()))
29 июн 04, 15:33    [771826]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
Luchkin Dmitry
Member

Откуда: Новосибирск -> Ангарск -> Братск -> Мск
Сообщений: 1921
можно и без строк ваще. быстрее наверное.
select cast(datediff(dd, 0, getdate()) as datetime)
29 июн 04, 15:35    [771832]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
jeannette
Member

Откуда:
Сообщений: 38
to pkarklin
так тогда дата не обрезается...
мне нужна обрезанная дата и тип должен быть тоже дата
в FAQ написано как обрезать дату, но тип там остается строка!
29 июн 04, 15:36    [771834]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
to pkarklin
так тогда дата не обрезается...


Да ну.

                                                       
------------------------------------------------------ 

2004-06-29 00:00:00.000 (1 row(s) affected)
29 июн 04, 15:38    [771843]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
jeannette
to pkarklin
так тогда дата не обрезается...
мне нужна обрезанная дата и тип должен быть тоже дата
в FAQ написано как обрезать дату, но тип там остается строка!

В FAQ еще написано 112, а вы 104 пользуете?
29 июн 04, 15:38    [771844]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
_bob
Member

Откуда: Москва
Сообщений: 1654
convert(datetime,floor(convert(float, getdate())))

работает на любых языках и настройках, для получения только времени нужно во флоате выделить дробную часть и преобразовать обратно в дэйттайм
29 июн 04, 15:40    [771852]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
jeannette
Member

Откуда:
Сообщений: 38
to _bob
мне надо дату, а не время, тогда целую надо выделить? а то данный запрос не работает

to pkarklin
в вашем примере дата не обрезается - вместе со временем показывается

to paparome
104 - это формат вывода даты, 112 или 104 - не влияет
29 июн 04, 15:49    [771905]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
to pkarklin
в вашем примере дата не обрезается - вместе со временем показывается


Мдя... Не бывает типа данных datetime без временной составляющей. Поэтому под "обрезанной" датой без времени понимается дата с временем 0:00... Вы же именно datetime просили!
29 июн 04, 15:53    [771926]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
Николай МВ
Member

Откуда: Ukraine-Kyiv
Сообщений: 328
jeannette

to pkarklin
в вашем примере дата не обрезается - вместе со временем показывается


Вывела таки pkarklin'a на чистую воду наша Жаннетт! Не умеет он с датами работать! А как умело под гуру маскировался! Сейчас Жаннетт порядок-то наведет! Где наш Glory? А ну подай его сюды! Сможет ли он отрезать время от даты, но чтобы при этом тип остался datetime? :)
29 июн 04, 15:58    [771954]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
Luchkin Dmitry
Member

Откуда: Новосибирск -> Ангарск -> Братск -> Мск
Сообщений: 1921
у Glory наверняка Yukon завалялся -- ему такое раз плюнуть. вот только это никому не поможет...
29 июн 04, 15:59    [771972]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
jeannette
Member

Откуда:
Сообщений: 38
to all
я НЕ говорила, что мне нужен тип datetime
вот в oracle можно же обрезать дату и при этом сравнивать с другой датой...мне надо было что-то похожее...
ну ладно, нет так нет
29 июн 04, 16:06    [772001]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
to all
я НЕ говорила, что мне нужен тип datetime


Ну как же: перевести строку в дату

автор
вот в oracle можно же обрезать дату и при этом сравнивать с другой датой...мне надо было что-то похожее...
ну ладно, нет так нет


Чего нет!!! Обрезайте и сравнивайте - какие проблемы?
29 июн 04, 16:10    [772026]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
Luchkin Dmitry
Member

Откуда: Новосибирск -> Ангарск -> Братск -> Мск
Сообщений: 1921
jeannette

.......
мне надо дату, а не время
........
мне нужна обрезанная дата и тип должен быть тоже дата
...........
я НЕ говорила, что мне нужен тип datetime


нестыковочка.
переводите в дату, как все много раз показали и сравнивайте. ничего этому не мешает.
29 июн 04, 16:11    [772030]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
_bob
Member

Откуда: Москва
Сообщений: 1654
код, который я написал {select convert(datetime,floor(convert(float, getdate())))} возвращает только дату, а на случай, если понадобится только время, я написал как быть
29 июн 04, 16:11    [772031]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
jeannette
Если я правильно понял, то Вам сюда

https://www.sql.ru/faq/faq_topic.aspx?fid=109

Чтобы получить символьную строку в таком "универсальном" формате используют

CONVERT(varchar(8), getdate(), 112)

Эту строку НЕ НАДО переводить обратно в DateTime она будет нормально сравниваться с полями типа DateTime как дата с нулевым временем. Также корректно она будет сравниваться и с символьными данными.
29 июн 04, 16:19    [772059]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
Николай МВ
Member

Откуда: Ukraine-Kyiv
Сообщений: 328
jeannette, я буду джентльменом, я уточню, так на всякий случай, что в SQL Server'a нет типа только date, есть datetime и smalldatetime и оба они содержат в себе время. Его можно обнулить, но совсем отрезать нельзя -- это слишком жестоко. :)
29 июн 04, 16:20    [772067]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
jeannette
Member

Откуда:
Сообщений: 38
to _bob
код возвращает и то, и другое
to all
спасибо за помощь, многое поняла, но все не это то
или я вопрос может некорректно задаю..
29 июн 04, 16:22    [772073]     Ответить | Цитировать Сообщить модератору
 Re: перевести строку в дату  [new]
jeannette
Member

Откуда:
Сообщений: 38
to ВладимирМ
СПАСИБО! все, значит мне подходит:)
to Николай МВ
я поняла уже, поэтому и говорила, что все не то, что нужно, но ответ ВладимирМ меня успокоил и устроил)))
29 июн 04, 16:25    [772083]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить