Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Конвертировать пять полей в поле DATETIME при INSERT  [new]
bless_ASPer
Guest
Сделал форму ввода на ASP.
Там есть переменные:
fStart_day
fStart_month
fStart_year
fStart_hour
fStart_minute
fEnd_day
fEnd_month
fEnd_year
fEnd_hour
fEnd_minute
Это дата и время начала процесса и окончания его же разбитые на отдельные поля День, МЕсяц, Год, Часы, Минуты.
Записываю на MS SQL2000:
INSERT INTO TABLE (start_day, start_month, start_year, start_hour, start_minute, end_day, end_month, end_year, end_hour, end_minute) VALUES ('" & fStart_day & "', '" & fStart_month & "', '" & fStart_year & "', '" & fStart_hour & "', '" & fStart_minute & "', '" & start_time & "', '" & fEnd_day & "', '" & fEnd_month & "', '" & fEnd_year & "', '" & fEnd_hour & "', '" & fEnd_minute & "').
Это такой синтаксис VALUES. Все работает - вставляет, но...
Ни как не могу объединить эти разрозненные поля в одно DATETIME.
Поможете?
21 июн 11, 09:44    [10844568]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать пять полей в поле DATETIME при INSERT  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
https://www.sql.ru/faq/faq_topic.aspx?fid=109
21 июн 11, 09:46    [10844587]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать пять полей в поле DATETIME при INSERT  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
bless_ASPer
Ни как не могу объединить эти разрозненные поля в одно DATETIME
10657554??
21 июн 11, 10:21    [10844779]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать пять полей в поле DATETIME при INSERT  [new]
bolloyd
Member

Откуда:
Сообщений: 1
Спасибо всем,
Вставлять в таблицу я буду все 5 полей, а в запросе следует делать так:
SELECT
DATEADD([SECOND], 3600 * start_hour + 60 * start_minute + 00, STR(10000 * start_year + 100 * start_month + start_day)) AS start_time
Где:
start_hour,
start_minute,
start_year,
start_month,
start_day
соответствующие поля таблицы.
Два нуля в первой половине формулы - это нули секунд. Если есть поле с секундами, то его можно подставить именно сюда.

С уважением,
21 июн 11, 11:35    [10845401]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать пять полей в поле DATETIME при INSERT  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Раз секунды не нужны,
bolloyd
Спасибо всем,
Вставлять в таблицу я буду все 5 полей, а в запросе следует делать так:
SELECT
DATEADD(MINUTE, 60 * start_hour + start_minute, STR(10000 * start_year + 100 * start_month + start_day)) AS start_time
Где:
start_hour,
start_minute,
start_year,
start_month,
start_day
соответствующие поля таблицы.
Два нуля в первой половине формулы - это нули секунд. Если есть поле с секундами, то его можно подставить именно сюда.

С уважением,
Можно и так:
DATEADD(MINUTE,start_minute, DATEADD(HOUR,start_hour, DATEADD(DAY,start_day-1, DATEADD(MONTH,start_month-1, DATEADD(YEAR,start_year-1900,0)))))
21 июн 11, 11:47    [10845499]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить