Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v / 15 сообщений из 15, страница 1 из 1
30.11.2015, 15:26
    #39116413
bibl2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
Привет!
Помогите, пожалуйста, новичку.
Куски кода, касающиеся проблемы:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
'Блок, рассчитывающий отчетный период
'Текущая дата
CurDate=Date
dd=mid(CurDate,1,2)
mm=mid(CurDate,4,2)
yy=mid(CurDate,7)

'Конец отчетного периода
LDate=Date()-1
ldd=mid(LDate,1,2)
lmm=mid(LDate,4,2)
lyy=mid(LDate,7)

'Формирование даты
LDate = ldd & "." & lmm & "." & lyy
LSQLDATE = lyy & "-" & lmm & "-" & ldd & " 12:00:00.000"

'Начало отчетного периода
FDate=Date()-7
fdd=mid(FDate,1,2)
fmm=mid(FDate,4,2)
fyy=mid(FDate,7)
	
'Формирование даты
FDate = fdd & "." & fmm & "." & fyy
FSQLDATE = fyy & "-" & fmm & "-" & fdd & " 12:00:00.000"
FLDate=dd & mm & yy
'Конец блока
Set rs = objConnection.Execute("select count (*) As N from dbo.events where EVENTID in ('624', '4720') and EVENT_DATE>='" & FSQLDATE & "' and EVENT_DATE<='" & LSQLDATE & "';")
	N = CStr(rs("N"))


Скриншот с ошибкой во вложении.
...
Рейтинг: 0 / 0
30.11.2015, 15:35
    #39116428
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
bibl2008Куски кода, касающиеся проблемы:
Для отладки замените
Код: javascript
1.
Set rs = objConnection.Execute("select count (*) As N from dbo.events where EVENTID in ('624', '4720') and EVENT_DATE>='" & FSQLDATE & "' and EVENT_DATE<='" & LSQLDATE & "';")


на
Код: javascript
1.
2.
3.
strSQL = "select count (*) As N from dbo.events where EVENTID in ('624', '4720') and EVENT_DATE>='" & FSQLDATE & "' and EVENT_DATE<='" & LSQLDATE & "';"
MsgBox "'" & strSQL & "'"
Set rs = objConnection.Execute(strSQL)


и покажите, что именно передаётся серверу.
...
Рейтинг: 0 / 0
30.11.2015, 15:45
    #39116446
bibl2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
вот,что вышло:
...
Рейтинг: 0 / 0
30.11.2015, 15:46
    #39116450
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
bibl2008,
Код: vbnet
1.
dd=mid(CurDate,1,2)

с чего ты решил, что в dd попадет именно день? Это будет зависеть от региональных настроек в панели управления и день там совсем не гарантируется.


Код: vbnet
1.
strSQL = "select count (*) As N from dbo.events where EVENTID in ('624', '4720') and EVENT_DATE BETWEEN '" & Format(Curdate, "yyyy-mm-dd") & "' and '" & Format(LDate, "yyyy-mm-dd") & "'"
...
Рейтинг: 0 / 0
30.11.2015, 15:47
    #39116451
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
bibl2008вот,что вышло:вот видишь. У тебя день вместо месяца
...
Рейтинг: 0 / 0
30.11.2015, 15:50
    #39116453
bibl2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
Да, уже понял в чем причина. Подскажите, как исправить - пока не могу сообразить?
...
Рейтинг: 0 / 0
30.11.2015, 15:51
    #39116461
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
есть функции Day, Month, Year
(format что-то не захотел, видимо нет в VBS)
...
Рейтинг: 0 / 0
30.11.2015, 16:40
    #39116534
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
Код: vbnet
1.
2015-23-11Т12:00:00.000
...
Рейтинг: 0 / 0
30.11.2015, 17:03
    #39116561
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
Antonariy
Код: vbnet
1.
2015-23-11Т12:00:00.000

необязательно
...
Рейтинг: 0 / 0
30.11.2015, 18:52
    #39116695
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
bibl2008как исправить
Во-первых, используйте строгую типизацию. Иначе Ваше гениальное
Код: vbnet
1.
dd=mid(CurDate,1,2)


проживёт до первого изменения региональных настроек.
Во-вторых, не делайте вручную то, для чего есть функция FormatDateTime.
...
Рейтинг: 0 / 0
01.12.2015, 06:31
    #39116926
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
Akina,
у клиента VB S . Откуда строгая типизация...
...
Рейтинг: 0 / 0
01.12.2015, 06:56
    #39116929
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
bibl2008,
если в системе, где выполняется скрипт, установлена русская локаль, то можно и так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
'Блок, рассчитывающий отчетный период
dim prevLocale
prevLocale = SetLocale("ru-ru")

'Текущая дата
CurDate=Date
dd=mid(CurDate,1,2)
{ ... ваш код без изменений}

SetLocale(prevLocale)
'Конец блока


Но правильнее, как указал Shocker.Pro, использовать функции для работы с датами Year, Month, Day.
Код: vbnet
1.
2.
3.
4.
5.
6.
CurDate = Date()
dd = Right("0"& Day(CurDate), 2)
mm = Right("0"& Month(CurDate), 2)
yy = Year(CurDate)

Wscript.Echo "SQLTIMESTAMP: '"& yy &"-"& mm &"-"& dd &" 12:00:00.000"& "'"
...
Рейтинг: 0 / 0
01.12.2015, 09:07
    #39116970
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
скукотищау клиента VB S . Откуда строгая типизация...
Вот именно. Её надо ввести в порядке самодисциплины. Чтобы избегать соблазнов на месте строкового аргумента отдавать дату и прочее - одним словом, избежать неявных преобразований типов, которые выполняются порой вовсе не так, как рассчитывает автор, а делать всё это явно. Дополнительный CStr() рук не оборвёт - он всё равно выполняется,- а однозначности добавит.
...
Рейтинг: 0 / 0
01.12.2015, 10:50
    #39117066
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
Akina,
OFF... и перекроить код VBS наподобие VB/VBA ;-)

ИМХО, _лишние_ "преобразования типов" делают скрипт менее читабельным.
Да и производительность вроде как проседает:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
option explicit

dim CurDate, strCurYear, UpBound, t, z

CurDate = Date()
UpBound = 1000000


REM implicit "conversion"
t = timer()
for z = 1 to UpBound
    strCurYear = right( CurDate, 4 )
next
wscript.echo "implicit: "& timer() -t


REM explicit "conversion"
t = timer()
for z = 1 to UpBound
    strCurYear = right( CStr(CurDate), 4 )
next
wscript.echo "explicit: "& timer() -t


REM implicit: 2,296875
REM explicit: 2,515625


...
Рейтинг: 0 / 0
02.12.2015, 08:57
    #39118001
bibl2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v
Всем спасибо за помощь! Вопрос решен.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / the conversion of a varchar data type to a datetime data type resulted in an out-of-rane v / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]