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

Откуда: Санкт-Петербург
Сообщений: 348
Коллеги, подскажите, как GETDATE() вывести без времени... туплю...
12 ноя 13, 12:02    [15114031]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
o-o
Guest
select cast(getdate() as date)
12 ноя 13, 12:04    [15114048]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
Mashtar
Member

Откуда:
Сообщений: 40
MedBrat,
еще вариант с нулевым временем:
 Select CAST(FLOOR(cast(getdate() as float)) as datetime) 
12 ноя 13, 12:25    [15114267]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
SilverVolg
Member

Откуда:
Сообщений: 36
SELECT CONVERT(VARCHAR, GETDATE(), 104)
12 ноя 13, 12:37    [15114347]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
SilverVolg,

все супер... а если я хочу изобразить нечто в духе
SELECT CONVERT(VARCHAR,GETDATE(), 104)-1

а в ответ, что логично...

Сообщение 245, уровень 16, состояние 1, строка 1
Ошибка преобразования значения varchar "12.11.2013" в тип данных int.
12 ноя 13, 14:34    [15115436]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
SELECT CONVERT(VARCHAR,GETDATE(), 104)-1

а -1 Это что такое ???
12 ноя 13, 14:37    [15115467]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
DmitryVT,

ну, предположительно от даты отнять 1 день. если мы из таблицы вынимаем значение даты и отнимаем 1, то он уменьшает на один день. А вот с функцией GETDATE() все не так просто... (
12 ноя 13, 14:41    [15115512]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
qwertz
Guest
SELECT convert(varchar(10), dateadd(d, -1, getdate()), 104)
12 ноя 13, 14:43    [15115522]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
SilverVolg
Member

Откуда:
Сообщений: 36
SELECT
DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0) AS FirstDayOfPrevYear
, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0) AS FirstDayOfYear
, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0) AS FirstDayOfPrevMonth
, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) AS FirstDayOfMonth
, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE())-1, 0) AS StartOfPrevDate
, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) AS StartOfDate
, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE())+1, 0) AS EndOfDate
, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())+1, 0) AS FirstDayOfNextMonth
, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE())+1, 0) AS FirstDayOfNextYear
12 ноя 13, 14:44    [15115530]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
DATEADD ( datepart , number, date ) - в замен -1


SELECT CONVERT(VARCHAR, DATEADD(DAY,-1,GETDATE()), 104)
12 ноя 13, 14:44    [15115531]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
SilverVolg
Member

Откуда:
Сообщений: 36
SilverVolg
SELECT
	  DATEADD(YEAR,  DATEDIFF(YEAR,  0, GETDATE()),   0) AS FirstDayOfPrevYear
	, DATEADD(YEAR,  DATEDIFF(YEAR,  0, GETDATE()),   0) AS FirstDayOfYear
	, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0) AS FirstDayOfPrevMonth
	, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()),   0) AS FirstDayOfMonth
	, DATEADD(DAY,   DATEDIFF(DAY,   0, GETDATE())-1, 0) AS StartOfPrevDate
	, DATEADD(DAY,   DATEDIFF(DAY,   0, GETDATE()),   0) AS StartOfDate
	, DATEADD(DAY,   DATEDIFF(DAY,   0, GETDATE())+1, 0) AS EndOfDate
	, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())+1, 0) AS FirstDayOfNextMonth
	, DATEADD(YEAR,  DATEDIFF(YEAR,  0, GETDATE())+1, 0) AS FirstDayOfNextYear

Ну и обернуть все в конверты для исключения времени
12 ноя 13, 14:44    [15115537]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
pio777
Member

Откуда:
Сообщений: 127
MedBrat
SilverVolg,

все супер... а если я хочу изобразить нечто в духе
SELECT CONVERT(VARCHAR,GETDATE(), 104)-1

а в ответ, что логично...

Сообщение 245, уровень 16, состояние 1, строка 1
Ошибка преобразования значения varchar "12.11.2013" в тип данных int.


Вы пытаететь от варчара вычесть 1, нужно так:

SELECT CONVERT(VARCHAR,GETDATE() - 1, 104)
12 ноя 13, 15:33    [15115961]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
Спасибо за советы! Решил свою задачу.
12 ноя 13, 15:53    [15116137]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
dateadd
Guest
pio777
MedBrat
SilverVolg,

все супер... а если я хочу изобразить нечто в духе
SELECT CONVERT(VARCHAR,GETDATE(), 104)-1

а в ответ, что логично...

Сообщение 245, уровень 16, состояние 1, строка 1
Ошибка преобразования значения varchar "12.11.2013" в тип данных int.


Вы пытаететь от варчара вычесть 1, нужно так:

SELECT CONVERT(VARCHAR,GETDATE() - 1, 104)

я бы вообще при обращении с датами не использовал +/-, а то можно и на
declare 
	@d datetime2

select 
	@d = @d + 1

нарваться
12 ноя 13, 16:18    [15116415]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
pio777
Member

Откуда:
Сообщений: 127
dateadd
pio777
пропущено...


Вы пытаететь от варчара вычесть 1, нужно так:

SELECT CONVERT(VARCHAR,GETDATE() - 1, 104)

я бы вообще при обращении с датами не использовал +/-, а то можно и на
declare 
	@d datetime2

select 
	@d = @d + 1

нарваться


Можно, функция GETDATE() возращает datetime. И тут все хорошо.
12 ноя 13, 16:25    [15116492]     Ответить | Цитировать Сообщить модератору
 Re: Дата. Туплю  [new]
getdate
Guest
pio777
dateadd
пропущено...

я бы вообще при обращении с датами не использовал +/-, а то можно и на
declare 
	@d datetime2

select 
	@d = @d + 1

нарваться


Можно, функция GETDATE() возращает datetime. И тут все хорошо.

тут да, но как только заменим getdate() на поле в таблице, или переменную, инициализируемую в начале батча, тоже типа datetime, жди беды.
12 ноя 13, 18:02    [15117389]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить