7
votes

SQL Convertir int en DateTime

J'ai 1323648000 qui est INT (10). J'ai besoin de pouvoir le convertir à un format de date de quelque sorte. Quelque chose comme DD / HH / YY HH: MM: SS. J'ai essayé de nous avoir quelques exemples ici, mais je ne peux pas sembler le faire fonctionner. J'ai essayé de le jeter comme un varchar (10) et convertir mais rien. Excel aussi émise #########. Est le nombre incorrect alors? XXX


1 commentaires

Quel rdbms? On dirait que MS SQL Server ...


3 Réponses :


1
votes
TO_CHAR(column_name, 'DD/MM/YYYY hh:mm:ss')

1 commentaires

n'a pas fonctionné :( SELECT engine4_openid_statusstats.openidstat_id, TO_CHAR (CAST (engine4_openid_statusstats.openidstat_time AS varchar (10), 3), 'jj / mm / aaaa hh: mm: ss), engine4_openid_services.openidservice_id, à partir de engine4_openid_services.openidservice_name engine4_openid_statusstats, engine4_openid_services



5
votes

Cela ressemble à un horodatage basé sur une époque de style unix, c'est-à-dire Nombre de secondes depuis 1970.

La conversion est spécifique à la RDBMS. Avec SQLite, vous feriez P>

select datetime( 1323648000, 'unixepoch' );


1 commentaires

Vous étiez correct. C'était un horodatage UNIX. J'ai utilisé 'à partir de Unixtime (moteur4_openid_statusstats.openidstat_time)' et cela a fonctionné. Merci!



3
votes

Si cela est effectivement stocké comme heure époque (à laquelle il ressemble à cela), ceux-ci sont le nombre de secondes depuis le 01 janvier 1970. Vous pouvez le convertir en DateTime en ajoutant les secondes à cette date.

SELECT DATEADD(SS, 1323648000, '01/01/1970')


0 commentaires