Я использую MS SQL Server 2008, и в таблице у меня есть идентификатор столбца как дата, но в целочисленном формате. Но в запросе я хочу это в формате даты. Можно ли конвертировать целочисленную дату в правильный формат даты и времени?
Вы не можете преобразовать целочисленное значение прямо в дату, но вы можете сначала преобразовать его в дату-время, а затем в тип даты
select cast(40835 as datetime)
, а затем преобразовать в дату (SQL 2008)
select cast(cast(40835 as datetime) as date)
ура
Вы должны сначала преобразовать его в дату-время, затем в дату.
Попробуйте, это может быть полезно:
Select Convert(DATETIME, LEFT(20130101, 8))
, а затем преобразовать в дату.
Скорее всего, вы хотите изучить документацию по функциям T-SQL CAST и CONVERT , расположенную здесь в документации: http://msdn.microsoft.com/en-US/library/ms187928(v=SQL.90).aspx
Затем вы будете использовать одну из этих функций в вашем запросе T-SQL, чтобы преобразовать столбец [idate] из базы данных в формат даты и времени, который вам нравится в выходных данных.
Если ваше целое число является меткой времени в миллисекундах, используйте:
SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name
Форматирует миллисекунды в строку гггг-мм-дд.
Прочтение этого помогает решить аналогичную проблему.Данные в десятичном виде - [DOB] [десятичное] (8, 0) NOT NULL - например, - 19700109. Я хочу получить в месяц.Решение состоит в том, чтобы объединить SUBSTRING с CONVERT to VARCHAR.
SELECT [NUM] ,SUBSTRING(CONVERT(VARCHAR, DOB),5,2) AS mob FROM [Dbname].[dbo].[Tablename]