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