web-dev-qa-db-fra.com

Convertir le datetime en horodatage Unix

Dans Microsoft SQL Server 2012 ou supérieur, est-il possible de convertir une valeur datetime en horodatage Unix dans une seule instruction de sélection? Si tel est le cas, comment cela peut-il se faire?

9
O A

Comme Peter Halasz le mentionne dans T-SQL DateTime to Unix Timestamp :

La conversion d'un datetime en horodatage unix est facile, mais implique des erreurs susceptibles de taper ce qui suit:

@timestamp=DATEDIFF(second,{d '1970-01-01'},@datetime)

Où @datetime est la valeur datetime que vous souhaitez convertir. La notation {d ‘aaaa-mm-jj’} est une séquence d'échappement ODBC.

La fonction:

CREATE FUNCTION UNIX_TIMESTAMP (
@ctimestamp datetime
)
RETURNS integer
AS
BEGIN
  /* Function body */
  declare @return integer

  SELECT @return = DATEDIFF(SECOND,{d '1970-01-01'}, @ctimestamp)

  return @return
END

Essayez-le maintenant comme ci-dessous @Ousman:

SELECT UNIX_TIMESTAMP(GETDATE());
28
khaled4vokalz