У меня есть два столбца:
int
Мой вопрос заключается в том, как преобразовать эти столбцы в формат даты, считая день первым днем месяца?
вы можете использовать это:
select datefromparts(year, month, 1) from table_name
вот ссылка: DateFromparts
Вы можете DATEFROMPARTS функция, как показано ниже:
DATEFROMPARTS
SELECT DATEFROMPARTS([Year], [Month], 1) FROM MyTable
Последний параметр относится к дневной части, поэтому вы можете изменить его с 1 на все, что захотите:)
Попробуй это. Мой ответ таков:
SELECT CAST(CAST(Year_T AS CHAR(4)) + '-'+RIGHT(CAST('0' AS CHAR(1))+cast(Month_T AS VARCHAR(2)),2)+'-'+cast('0' AS CHAR(1))+cast('1' AS CHAR(1)) AS DATE) AS NewDate FROM MyTable
Вы можете использовать следующее (ранее SQL Server 2012):
SELECT CAST(CONVERT(VARCHAR, [Year]) + '-' + CONVERT(VARCHAR, [month]) + '-' + '01' AS DATE) FROM table_name
Начиная с SQL Server 2012, вы также можете использовать DATEFROMPARTS:
SELECT DATEFROMPARTS([Year], [month], 1) FROM table_name
демо: https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=4ab24b45c9270d2880cda468aa422237