28 Kasım 2023 Salı

EpochTime'dan DateTime'a Yolculuk

 Merhaba Arkadaşlar,

SQL tarafında bazı tablolarda tarih alanına alternatif olarak EpochTime değeri tutulmaktadır. Bu değer genel bir terim olup 01.01.1970den bu zamana geçen saniyeyi bize vermektedir.


Eğer tablolarınızda böyle bir alan tanımlanmışsa bu alanın tanımlanmasındaki ana hedef aşağıdakilerden birisi olabilir:

  • taşınabilirlik
  • hesaplama kolaylığı
  • veri saklama ve işlem hafifliği
  • sıralama ve karşılaştırma kolaylığı
Dezavantajlarıda vardır ki bunlardan ilki gözle baktığınızda bu sayısal ifadenin hangi zamana karşı geldiğini yakalayamayız. Bu durumda kendimize bir converter yazmamız gerekecektir. Bugün birlikte bu converter'ı yazıyor olacağız.

SQL ortamında;

--EpochTime2Date
declare @epochtime bigint=1700392556;
select DATEADD(second,@epochtime,'19700101') as convertedTime

--Date2EpochTime
select cast(datediff(second,'1970-01-01',getdate()) as bigint) as epoch

C# Ortamında;

 public long Date2EpochTime(DateTime dt)
 {
            DateTime epochDateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            TimeSpan timeSpan = dt-epochDateTime;
            return (long)timeSpan.TotalSeconds;
 }

 public DateTime EpochTime2Date(long epochValue)
 {
            DateTime dt = new DateTime();
            return  dt.AddSeconds(epochValue);
 }








Hiç yorum yok:

Yorum Gönder

SQL Server ve SQL Server Management Studio Kurulumu

Merhaba arkadaşlar, bu makalede SQL Server kurulumunu inceleyeceğiz. Öncelikle kurulum yapmak istediğimiz bilgisayarın işletim sistemine bak...