bless_ASPer
Дата: 21.06.2011 09:44:01
Сделал форму ввода на 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.
Поможете?
bolloyd
Дата: 21.06.2011 11:35:52
Спасибо всем,
Вставлять в таблицу я буду все 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
соответствующие поля таблицы.
Два нуля в первой половине формулы - это нули секунд. Если есть поле с секундами, то его можно подставить именно сюда.
С уважением,
iap
Дата: 21.06.2011 11:47:27
Раз секунды не нужны,
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)))))