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

Откуда:
Сообщений: 23
Т. е. нужно с 2016-05-30 сменить на 2016-03-30 не меняя время.
UPDATE Events
SET EventTime = EventTime - 60*60*24*61
WHERE (EventTime > CONVERT(DATETIME, GetDate(), 102)) это не работает
Что делать?
7 апр 16, 13:52    [19027655]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
iljy
Member

Откуда:
Сообщений: 8711
alexxxfm,

DATEADD
7 апр 16, 13:53    [19027661]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
alexxxfm,

а из '20160430' что должно получиться?
7 апр 16, 15:02    [19028123]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
iap,
2016-03-30 должно получиться
8 апр 16, 05:48    [19030637]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
iap,
сейчас
2016-05-30 09:00:01
2016-05-30 09:00:53
2016-05-30 09:00:59
итд 5000 записей

надо чтобы так
2016-03-30 09:00:01
2016-03-30 09:00:53
2016-03-30 09:00:59
8 апр 16, 05:54    [19030640]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
iap,

EventTime(тип datetime) привязан к ключу EventId
8 апр 16, 05:57    [19030643]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
ноунейм
Guest
Вам уже сказали про DATEADD.
А если поменять надо только месяц, то возникает вопрос про разное количество дней в месяцах. Например - февраль.
8 апр 16, 06:25    [19030659]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
ноунейм,
это понятно, я говорю про конкретные месяцы март и май, в обоих есть 30-е число
8 апр 16, 07:57    [19030777]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
Glory
Member

Откуда:
Сообщений: 104760
alexxxfm
это понятно, я говорю про конкретные месяцы март и май, в обоих есть 30-е число

А вам говорят про функцию, которая прибавляет/отнимает месяца. Для 31го дня месяца.
select dateadd(month, 1, '20160531')
8 апр 16, 08:45    [19030875]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
alexxxfm
iap,
2016-03-30 должно получиться
Это почему же?!
Из апреля отнять два месяца - февраль должен получиться!
8 апр 16, 09:37    [19031013]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
iap,
из мая!!!! 05 месяц!!!
8 апр 16, 11:32    [19031650]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
iljy
Member

Откуда:
Сообщений: 8711
alexxxfm
iap,
из мая!!!! 05 месяц!!!


Я чет не пойму, вы что, уверены, что для майских дат есть какие-то специальные функции? Вам два раза сказали про DATEADD, вы хоть посмотрели. что она делает?
8 апр 16, 11:34    [19031662]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
Glory
Member

Откуда:
Сообщений: 104760
alexxxfm
из мая!!!! 05 месяц!!!

Вам пытаются рассказать, что вычислять последний день месяца не так легко, как вам кажется.
Но вы можете на это забить, если вас интересует только месяц май и только 30-е число.
8 апр 16, 11:35    [19031666]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
Glory,

благодарю...

сейчас
2016-05-30 09:00:01
2016-05-30 09:00:53
2016-05-30 09:00:59
итд 5000 записей

надо чтобы так
2016-03-30 09:00:01
2016-03-30 09:00:53
2016-03-30 09:00:59
8 апр 16, 12:00    [19031868]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
Glory
Member

Откуда:
Сообщений: 104760
alexxxfm
надо чтобы так
2016-03-30 09:00:01
2016-03-30 09:00:53
2016-03-30 09:00:59

Ну раз надо, так делайте.
8 апр 16, 12:01    [19031880]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
xenix
Guest
UPDATE TABLEA
SET FIELD=DATEADD(MONTH,-3,FIELD)
WHERE CAST(FIELD AS DATE)='20160530'
8 апр 16, 12:02    [19031889]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
xenix,
слава единичке и нолику!!!
Благодарю за подсказку!

получилось

UPDATE Events
SET EventTime = DATEADD(MONTH, - 3, EventTime)
WHERE (EventTime > CONVERT(DATETIME, GETDATE(), 102))
8 апр 16, 12:14    [19031955]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
xenix,

просто событий старше сегодня не было, кроме тех от 30.05.2016, поэтому GETDATE()
8 апр 16, 12:16    [19031971]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
xenix,
только в моём случае- SET EventTime = DATEADD(MONTH, - 2, EventTime)
8 апр 16, 12:19    [19032009]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
Glory
Member

Откуда:
Сообщений: 104760
alexxxfm
xenix,
только в моём случае- SET EventTime = DATEADD(MONTH, - 2, EventTime)

Про DATEADD вам сутки назад сказали
8 апр 16, 12:21    [19032032]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
Glory,
Знаю))
8 апр 16, 12:36    [19032145]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить дату (только месяц), время оставить прежним, тип поля datetime mssql 2005?  [new]
alexxxfm
Member

Откуда:
Сообщений: 23
БЛАГОДАРЮ всех!!!!!!! )
8 апр 16, 12:38    [19032159]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить