web-dev-qa-db-fra.com

Comment convertir int à ce jour dans SQL Server 2008

J'utilise MS SQL Server 2008, Et dans un tableau, j'ai la colonne idate comme date mais au format entier . date entière au format date/heure approprié?

9
Vikrant More

Vous ne pouvez pas convertir une valeur entière directement en une date, mais vous pouvez d’abord la convertir en un datetime puis en un type de date.

select cast(40835 as datetime)

puis convertir en date (SQL 2008)

select cast(cast(40835 as datetime) as date)

à votre santé

16
davey

Vous devez d'abord le convertir en date/heure, puis en date.

Essayez ceci, cela pourrait être utile:

Select Convert(DATETIME, LEFT(20130101, 8))

puis convertir en date.

3
Nikhil Gutha

Vous souhaiterez probablement examiner la documentation des fonctions CAST et CONVERT de T-SQL, située dans la documentation ici: http://msdn.Microsoft.com/en-US/library/ms187928(v=SQL .90) .aspx

Vous utiliserez ensuite l'une de ces fonctions dans votre requête T-SQL pour convertir la colonne [idate] de la base de données au format date-heure de votre choix dans la sortie.

1
condiosluzverde

Si votre entier est timestamp en millisecondes, utilisez:

SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name

Il formatera des millisecondes en chaîne aaaa-mm-jj.

0
Vitaliy A

Lire ceci aide à résoudre un problème similaire. Les données sont en type de données décimal - [DOB] [décimal] (8, 0) NON NULL - par exemple - 19700109. Je souhaite obtenir le mois La solution consiste à combiner SUBSTRING avec CONVERT to VARCHAR.

    SELECT [NUM]
       ,SUBSTRING(CONVERT(VARCHAR, DOB),5,2) AS mob
    FROM [Dbname].[dbo].[Tablename]