В зависимости от того, что вы подразумеваете под «лучшим способом», вы можете найти разные ответы приемлемыми.Например, преобразование из строки может быть проще (и, следовательно, лучше), чем то, как это делается в вашем скрипте.Например:
SET @MINDATE = CAST(@YEAR AS varchar) + '-' +
CAST(@MONTH AS varchar) + '-' +
CAST(@DAY AS varchar)
То есть, если ваша переменная datetime
, преобразование будет неявным, поэтому нет необходимости использовать CONVERT
.Выбранный здесь формат YYYY-MM-DD
, а точнее YYYY-M-D
, который, насколько я знаю, приемлем для неявного преобразования независимо от настроек локали.
РЕДАКТИРОВАТЬ: Формат, который вы выбрали, YYYYMMDD
, также не зависит от локали, если я не ошибаюсь.Моя точка зрения заключалась лишь в том, что для построения правильной строки из целых чисел требовалось более сложное выражение, что казалось вам неудобным.