У меня есть 2 таблицы ServiceType
AND Services
.Тип данных nvarchar для SQL-запроса datetime
Service
структура таблицы
ServiceID int Unchecked
Service_TypeID int Unchecked
Last_performed date Unchecked
Frequency nvarchar(50) Unchecked
Freq_Duration nvarchar(50) Unchecked
Freq_Mileage nvarchar(50) Unchecked
Remin_frequ nvarchar(50) Unchecked
Remin_duration nvarchar(50) Unchecked
Remin_Mileage nvarchar(50) Checked
Next_due_datetime datetime Unchecked
Next_due_mileage nvarchar(50) Unchecked
ServiceType
структура
Service_TypeID int Unchecked
Service_Type nvarchar(50) Unchecked
Выборочные данные
ServiceID Service_TypeID Last_performed Frequency Freq_Duration Freq_Mileage Remin_frequ Remin_duration Remin_Mileage Next_due_datetime Next_due_mileage
3 2 2012-12-01 6 month(s) 1000 1 day(s) 10 2013-03-10 1000
и я хочу данные, как это:
ServiceID Service_TypeID Last_performed Service Frequency Next Service Create Reminder
3 2 2012-12-01 6 month(s) 1000 2013-03-10 1000 1 day(s) 10
Для этого я попробовать этот запрос:
select
Services.ServiceID,
ServiceType.Service_Type,
Last_performed
Services.Frequency+''+Freq_Duration+''+Freq_Mileage as [Service Frequency],
Services.Next_due_datetime+''+Next_due_mileage as [Next Service],
Services.Remin_frequ+''+Remin_duration+''+Remin_Mileage as [Create Reminder]
from
Services
inner join
ServiceType on ServiceType.Service_TypeID = Services.Service_TypeID
, но я получаю эту ошибку:
The conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value.
Вы не можете напрямую конкатрировать nvarch ar и тип даты, вы должны нам преобразовать функцию для преобразования даты, после чего вы можете выполнить ее с помощью типа nvarchar. –
, но почему я использую преобразование даты на дату, когда уже существует тип данных datetime? –
Services.Next_due_datetime + '' + Next_due_mileage здесь первый столбец имеет дату и время, а второй - дату и время, поэтому вам нужно изменить тип данных на varchar firstcolumn и то же самое для остальных. –