Як в mssql через insert вставити поле date

Як в MSSQL через INSERT вставити поле DATE

Вітання. У таблиці є поле типу DateTime.
При спробі вставки нового запису через INSERT.
де дату уявляю як рядок вилітає помилка
(А в Interbase такий фінт проходив)

quTemp1.SQL.Add ( "INSERT INTO Test (data1) VALUES ("
+# 39 + DateToStr (Date) + # 39+ ")");

Здогадуюся, що треба значення конвертнуть.
Підкажіть, як правильно це зробити.
Заздалегідь вдячний.

І що ви все так не любите параметричні запити?

Вся справа в форматі. Я поступаю наступним чином:

INSERT INTO. VALUES (GetDate ());

Поточну дату і час MS SQL таким чином проковтує.

> SQLMan - ідея зрозуміла і ваш вар-т для вставки нового запису цілком піде,
а як бути коли треба змінити дату через UPDATE.
Адже суть проблеми залишається.

А якщо клієнт хоче вставити свою системну дату, а
сервер стоїть в іншому часовому поясі?

На мою Mick (14.12.01 12:14) прав
..Sql = "INSERT INTO Test (data1) VALUES (: MyDate)"
параметр повинен бути DateTime
потім. ParamByName ( "MyDate"). AsDateTime: = MyDate

> Mick- А навіщо так заморочуватися? Адже час і дата сервера мають більший пріоритет. А в разі UPDATE дату і час доведеться конвертувати через DateTimeToStr. А найкраще використовувати параметр! Це буде і простіше і надійніше.

Якщо ця дата на рівні сервера відома так краще її взагалі тригером вставляти

SQLMan: Клієнт наприклад хоче вставити астрономічний час операції (місцеве) і чийсь пріоритет його не хвилює.

А про те як "простіше і надійніше" людині був відразу дано відповідь.

Дякую всім за допомогу.
Чи не почувши потрібної відповіді (дискусія пішла в напр-ванні "ЩО краще", хоча мене цікавило, що дає помилку),
все ж довелося самому "копати" глибше і виявилося, що помилка при вставці виникала через різні форматів представлення дати: в БД мм.дд.гг. а я вперто намагався встромити дд.мм.гг.
Ось вже напевно ГРАБЛИ, Котре. багато пройшли.

Тобто вставити дату через SQL-insert можна використовуючи функцію CAST () або просто представляючи дату як рядок, тільки в коректності форматі.

При використанні параметрів цих "граблів" немає, але якщо неодмінно бажається так писати, то тоді дійсно CAST або CONVERT

> Delirium
Правда, не врахувавши особливості цього формату, можна намагатися записати дату в форматі, відмінному від прийнятого в SQL Server за замовчуванням. Наскільки мені відомо, формат дати залежить від регіональних установок. Чи не так?

> SQLMan
Не треба сперечатися, перевір якщо не віриш, формат yyyyddmm не залежить ні від яких регіональних та інших установок в MSSQL.

Помилилися yyyymmdd. звичайно :)
Він існує нарівні з прийнятими регіональними форматами.

Раз пішла така пісня - ще питаннячко.
А де в MSSQL можна налаштувати формат дати?
Що то я з ходу і не знайшов.
(Я зрозумів, що з регіональними установками MSSQL погано дружить)

Читай хелп по SET DATEFORMAT