|
v7: 1C++ Syntax error converting datetime from character string. | ☑ | ||
---|---|---|---|---|
0
burrya
08.01.13
✎
18:00
|
ТекстЗапросаЗаданийСМС = "
|SELECT | Спр.ID as [Задание $Справочник.ЗаданияНаОтправкуСМС] |FROM | $Справочник.ЗаданияНаОтправкуСМС as Спр (nolock) |WHERE | Спр.IsMark = 0 AND | $Спр.ДатаОтправки BETWEEN :ДатаНачалаРаботыСистемы AND :ДатаОтправки~"; ODBCRecordset.УстановитьТекстовыйПараметр("ДатаНачалаРаботыСистемы", Константа.ДатаНачала); ODBCRecordset.УстановитьТекстовыйПараметр("ДатаОтправки", ТекущаяДата()); Задания = ODBCRecordset.ВыполнитьИнструкцию(ТекстЗапросаЗаданийСМС); Задания.ВыбратьСтроки(); Задания = ODBCRecordset.ВыполнитьИнструкцию(ТекстЗапросаЗаданийСМС); {D:\TEST.ERT(17)}: State 22007, native 241, message [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting datetime from character string. |
|||
1
Wobland
08.01.13
✎
18:07
|
да что вы говорите?
|
|||
2
КонецЦикла
08.01.13
✎
18:07
|
Может надо применить convert?
А вообще поезг и изучение конфигурации помогут |
|||
3
viktor_vv
08.01.13
✎
18:08
|
Если мне не изменяет память, то модификатор параметра в DateTime "~~".
$Спр.ДатаОтправки BETWEEN :ДатаНачалаРаботыСистемы~~ AND :ДатаОтправки~~"; |
|||
4
Wobland
08.01.13
✎
18:13
|
(3) изменяет
|
|||
5
viktor_vv
08.01.13
✎
18:22
|
(4) Ну таки в доке так и написано.
Дата 0: char(8) - каноническое представление даты; 1: char(9) - каноническое представление даты + символ “Z” (используется для обозначения момента времени конца этой даты); 2: datetime. Сейчас попробую. |
|||
6
Wobland
08.01.13
✎
18:27
|
(5) документацию не читал, у меня работает так:
|WHERE | Жур.Date_Time_IDDoc BETWEEN :ДатаНачала AND :ДатаОкончания~ |
|||
7
viktor_vv
08.01.13
✎
18:30
|
(6) Так
Жур.Date_Time_IDDoc тип char(23) а унего реквизит с типом "дата" (я так подозреваю), в базе это DateTime. Проверил (3), все работает. |
|||
8
burrya
08.01.13
✎
18:51
|
таки да
ТекстЗапросаЗаданийСМС = " |SELECT | Спр.ID as [Задание $Справочник.ЗаданияНаОтправкуСМС] |FROM | $Справочник.ЗаданияНаОтправкуСМС as Спр (nolock) |WHERE | Спр.IsMark = 0 AND | $Спр.ДатаОтправки BETWEEN convert(datetime, :ДатаНачалаРаботыСистемы) AND convert(datetime, :ДатаОтправки)" Работает |
|||
9
burrya
08.01.13
✎
18:51
|
Всем спасибо.
|
|||
10
КонецЦикла
08.01.13
✎
22:39
|
молодец
|
|||
11
trad
08.01.13
✎
23:41
|
конверт то зачем?
в (3) правильный ответ |
|||
12
КонецЦикла
09.01.13
✎
01:50
|
точно, на то как применил не посмотрел :)
|
|||
13
КонецЦикла
09.01.13
✎
02:11
|
(11) Хм... интеерсно... а ведь 1С не умеет хранить короткую дату, что у него там в справочнике за дата такая?
У меня всегда с ~ работало |
|||
14
trad
09.01.13
✎
09:25
|
(13) а при чем тут короткая дата?
|
|||
15
dk
09.01.13
✎
09:29
|
Константа.ДатаНачала тип какой? Дата или строка?
|
|||
16
trad
09.01.13
✎
09:34
|
(13)"У меня всегда с ~ работало"
уверен? сильно сомневаюсь Если текстовый параметр типа Дата, то: 1) при 0 модификаторе в текст будет вставлен литерал-строка 'ггггммдд', что при сравнении с полем типа datetime приведет к неявному преобразованию типа строки к datetime 2) при 2 модификаторе в текст будет вставлен литерал-дата {d 'гггг-мм-дд'}, что при сравнении с полем типа datetime приведет сравнению без каких-либо преобразований типов 3) при 1 модификаторе в текст будет вставлен литерал-строка 'ггггммддZ', что при сравнении с полем типа datetime приведет к попытке неявного преобразования типа, а это в свою очередь невозможно и приводит к ошибке: "Syntax error converting datetime from character string." |
|||
17
КонецЦикла
09.01.13
✎
13:54
|
(16) Честно, даже полез проверять
Был SQL 2000, потом SQL 2005 В чужих отчетах две тильдочки, у меня - одна (допустим для регистров, позиции документов) |
|||
18
trad
09.01.13
✎
14:08
|
(16) Ну так а позиция тут ни при чем - она везде строка. И первый модификатор как раз для сравнения с ней и придуман (как позиция конца даты)
В ветке речь про сравнение с реквизитом типа Дата (т.е. datetime) |
|||
19
trad
09.01.13
✎
14:08
|
(18) к (17)
|
|||
20
КонецЦикла
09.01.13
✎
14:16
|
(18) Тьфу, ну бывает :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |