powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не выполняется запрос
6 сообщений из 6, страница 1 из 1
Не выполняется запрос
    #32057010
Максим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
У меня возникла такая ситуация - при запуске процедуры в ручную (с Query Analyzer-a или Server Job(принудительный start)) в таблицу записываются обе записи (после письма прилагается урезанная версия скрипта), а если Server Job запускается по расписанию, то в таблицу записывается только 1 запись(та запись, которая в скрипте обозначается 'val' не записывается)!
Какие есть идеи, Господа?
Почему это произходит?
SCRIPT
CREATE PROCEDURE [dbo].[Report2_1100] AS
declare @dtimestart char(19), @dtime char(11)
set @dtimestart = (select convert(char(11), getdate(), 111)+'07:00:00')
set @dtime = (select convert(char(11), getdate(), 111))
insert into Report2_hour
select top 1
(select convert(char(3), getdate(), 103)+'11:00')
as [time],'val' as par, cast(paflt1 as decimal(6,1)) as PaFlt1
from analog with (index(ddt))
where dtime = @dtime+'11:00:00'
union
select
(select convert(char(3), getdate(), 103)+'11:00')
,'avg', cast(avg(paflt1) as decimal(6,1))
from analog with (index(ddt))
where dtime between (select DATEADD(hh,+2,@dtimestart)) and (select DATEADD(hh,+4,@dtimestart))
group by left(dtime,4)
...
Рейтинг: 0 / 0
Не выполняется запрос
    #32057032
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что сразу пришло в голову - Может не очень коректно работает связка -
Код: plaintext
1.
2.
3.
set @dtime = (select convert(char( 11 ), getdate(),  111 ))
...
where dtime = @dtime+'11:00:00'


Если dtime - типа datatime -
Надежнее приводить к yyyymmdd hh:mm:ss
...
Рейтинг: 0 / 0
Не выполняется запрос
    #32057050
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присоединяюсь к dao. Для работы с датами есть соответствующий функции. Кроме того, для отладки можно записывать значения условий в таблицу.
...
Рейтинг: 0 / 0
Не выполняется запрос
    #32057075
Максим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я поменял формат даты в условии, теперь
set @dtime = (select convert(char(8),getdate(),112))!
Но в результате ничего не поменялось(при ручном запуске пишутся все записи, а по расписанию только одна)
...
Рейтинг: 0 / 0
Не выполняется запрос
    #32057093
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К формату yyyymmdd а не yymmdd - yy -может восприниматься по разному -
совет - выводи полученные даты в отладочную таблицу -
потому что еще сумащает
Код: plaintext
convert(char( 11 ), getdate(),..) 
ведь в yyyy:mm:dd - 10 символов и таки какого типа поле dtime
...
Рейтинг: 0 / 0
Не выполняется запрос
    #32057125
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После преобразования даты в строку, для сравнения с другой датой надо преобразовать её обратно тем же форматом.
Примерно так:
Код: plaintext
select convert(datetime,convert(char( 3 ), getdate(),  103 )+'11:00', 103 )

А не работает потому, что у пользователя, который коннектится к QA в настройках логина один язык, а у SQLAgent - а другой.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не выполняется запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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