Unix timestamp , 01.01.1970 tarihinden , bulunduğumun güne karadar geçen sürenin saniye cinsinden gösterimidir. Bu durumda tarih formatı yerine rakam karşımıza çıkmaktadır. Yerine göre kullanımı performanslı ya da uygun olabileceğini düşünüyorum. Ancak kullanıldığı yerlerde sql datetime dönüşümü gerekir ise bu durumda izlenecek yol aşağıdaki gibi olabilir.

{d ‘yyyy-mm-dd’} buradaki "d" harfi, ODBC tarih formatı için özel bir karakterdir. ( ODBC escape sequence )

DateTime dan Unix Timestamp dönüşümü için

CREATE FUNCTION DATETIME_TO_UNIX_TIMESTAMP (
  @inputDate DATETIME
)
RETURNS INTEGER
AS 
BEGIN
  DECLARE @return INTEGER
  SELECT @return = DATEDIFF(SECOND,{d '1970-01-01'}, @inputDate)
  return @return
END

Birde bu yukarıdaki fonksiyonun tam tersini yapabilen bir fonksiyon daha kullanmak gerekebilir. Bunu da şu şekilde yapabiliriz

 

CREATE FUNCTION UNIX_TIMESTAMP_TO_DATETIME (
   @timestamp INTEGER
)
RETURNS DATETIME
AS
BEGIN
  DECLARE @return DATETIME
  SELECT @return = DATEADD(SECOND, @timestamp,{d '1970-01-01'});
  RETURN @return
END

Sağlıcakla kalın :)

If you like this, follow my RSS channel!