Я выполняю задание для школы в Sql, и у меня возникли проблемы. Я должен создать функцию пользователя, когда при вводе даты вы получите номер дня недели (понедельник - 1, вторник 2 и т. Д.). Я код, который я успел написать ниже, однако я получаюОшибка конверсии при преобразовании даты и/или времени из символьной строки при присвоении чисел дням недели
«Конверсия удалось при преобразовании даты и/или времени из символов ошибки строки»
так я думаю, мне нужно сделать некоторые Кастинг. Я исследовал, но до сих пор я нашел только подсказки datetime как конвертировать и до сих пор, я не смог реализовать в своем коде.
CREATE FUNCTION [dbo].[whichDay] (@p_day [datetime])
RETURNS [int]
AS
BEGIN
DECLARE @selectedDate [int]
SET @selectedDate= CASE
WHEN @p_day IN (N'Monday') THEN 1
WHEN @p_day IN (N'Tuesday') THEN 2
WHEN DAY (@p_day) IN (N'Wednesday') THEN 3
WHEN DAY (@p_day) IN (N'Thursday') THEN 4
WHEN DAY (@p_day) IN (N'Friday') THEN 5
WHEN DAY (@p_day) IN (N'Saturday') THEN 6
ELSE 7
END
RETURN @selectedDate
END;
GO
Я попытался также это с IF заявления (IF THEN ELSE IF для всех остальных дней), но я не мог понять, что один, как хорошо.
@TabAlleman Могу ли я спросить, почему вы удалили тег 'sql-server'? Я знаю, что OP писал: «Я выполняю задание для школы в MySql», но его пример явно указывает, что это язык T-SQL (SQL Server/Sybase). – lad2025
Я дал больше веса первому предложению, чем коду. Мне показалось более вероятным, что ОП поставит ошибочный код в вопросе, чем он скажет, что он специально использует MySQL, когда он этого не делает. –
Да, я сам себя не понял. Спасибо, что исправил меня. –