powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / подскажите по ошибке в динамическом запросе
7 сообщений из 7, страница 1 из 1
подскажите по ошибке в динамическом запросе
    #39609633
cglcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сам запрос:
DECLARE @sql nvarchar(1000)
DECLARE @date date
SET @sql =
'SELECT Account.account_number, currency, amount, CAST(date_time_operation AS DATE) AS date_bank_operation, date_time_operation
FROM Account
JOIN Bank_operations ON Account.account_number = Bank_operations.account_number
WHERE currency = ''EUR''
AND CAST(date_time_operation AS DATE) = ''@d nvarchar (20)''
AND Account.account_number = 10000011'
SET @date ='@d nvarchar (20)'
EXECUTE sp_executesql @sql, @date, @d ='2017-01-17'


выдает ошибку - Conversion failed when converting date and/or time from character string.
Где у меня ошибка и как ее исправить?
...
Рейтинг: 0 / 0
подскажите по ошибке в динамическом запросе
    #39609636
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cglcz,

Код: sql
1.
AND CAST(date_time_operation AS DATE) = ''@d nvarchar (20)''



Вы пытаетесь сравнить date_time_operation со строкой @d nvarchar (20)

замените на
Код: sql
1.
AND CAST(date_time_operation AS DATE) = @d
...
Рейтинг: 0 / 0
подскажите по ошибке в динамическом запросе
    #39609637
Bank_operations
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cglcz,

Код: sql
1.
2.
3.
DECLARE @date date
...
SET @date ='@d nvarchar (20)'



???
...
Рейтинг: 0 / 0
подскажите по ошибке в динамическом запросе
    #39609642
cglcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,
не получается, все равно такая же ошибка
...
Рейтинг: 0 / 0
подскажите по ошибке в динамическом запросе
    #39609647
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cglcz,

не получается что? Вам показывают, что Вы чушь написали.
...
Рейтинг: 0 / 0
подскажите по ошибке в динамическом запросе
    #39609650
cglcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot,
Все, получилось. Спасибо.

GO
DECLARE @sql nvarchar(1000)
DECLARE @date nvarchar (20)
SET @sql =
'SELECT Account.account_number, currency, amount, CAST(date_time_operation AS DATE) AS date_bank_operation, date_time_operation
FROM Account
JOIN Bank_operations ON Account.account_number = Bank_operations.account_number
WHERE currency = ''EUR''
AND CAST(date_time_operation AS DATE) = @d
AND Account.account_number = 10000011'
SET @date ='@d nvarchar (20)'
EXECUTE sp_executesql @sql, @date, @d = '2017-01-17'
...
Рейтинг: 0 / 0
подскажите по ошибке в динамическом запросе
    #39609809
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cglcz,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DECLARE @sql nvarchar(1000)
SET @sql = '
SELECT Account.account_number, currency, amount, CAST(date_time_operation AS DATE) AS date_bank_operation, date_time_operation
FROM Account 
JOIN Bank_operations ON Account.account_number = Bank_operations.account_number
WHERE currency = ''EUR''
AND date_time_operation >= @d
AND date_time_operation  < DATEADD( DAY, 1, @d )
AND Account.account_number = 10000011'
EXECUTE sp_executesql 
  @sql, 
  -- заменить тип @d на тип данных столбца date_time_operation
  N'@d DATETIME' ,
  -- при присвоении переменным типа DATE/DATETIME/DATETIME2 лучше использовать ISO формат:
  -- короткая дата - ГГГГММДД
  -- дата и время - ГГГГ-ММ-ДДTЧЧ:ММ:СС
  -- @d = '20170117'
  -- @d = '2017-01-17T00:00:00'
  @d = '20170117'
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / подскажите по ошибке в динамическом запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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