tarafından desteklenen en eski Zaman Damgası, farklı saat dilimlerinde (ve zaman aralıklarında) farklı veritabanlarıyla çalışıyorum ve normalde sorunları oluşturan bir şey, tarih/saat tanımıdır.PostgreSQL
Bu nedenle, ve bir tarihin başlangıç değerine referans olması nedeniyle, nasıl hesaplandığını takip etmek için temel tarihi depolamaya çalışıyorum; yani, söz konusu bilgisayar/veritabanında desteklenen minimum tarih;
Eğer iyi görüyorsam, bu RDBMS'ye ve türün belirli depolamasına bağlıdır. SQL Server'da, bu "temel tarihi" hesaplamanın birkaç yolunu buldum;
SELECT CONVERT(DATETIME, 0)
veya
SELECT DATEADD(MONTH, 0, 0)
veya böyle hatta bir döküm
:Benim sorum (@dt bir datetime değişken olduğu), benzer bir
DECLARE @300 BINARY(8)
SET @300 = 0x00000000 + CAST(300 AS BINARY(4))
set @dt=(SELECT CAST(@300 AS DATETIME) AS BASEDATE)
print CAST(@dt AS NVARCHAR(100))
yoktur
PostgreSQL'te temel tarihin hesaplanma şekli, yani: minimum hesaplanan değer ve tüm hesaplamalar bazında olan değer nedir?date
type açıklamasından
, ben desteklenen minimum tarih 4713 M.Ö., ama SQL Server olduğu gibi orada, (biçimlendirilmiş bir tarih dizesi olarak örneğin) programlı bu değeri almanın bir yolu olduğunu görebilir?
SQL Server'da bu "0 date" temel tarihini çağırabilirsiniz, ancak aynı zamanda desteklenen minimum tarih olduğunu düşünüyorsanız (ve ifadenizden yaptığınız gibi görünür), yanılıyorsunuz demektir. '1900-01-01' ye dönüşür ve 'smalldatetime', daha önceki tarihlerle başa çıkamayan tek tarih/saat türüdür. Muhtemelen daha yaygın olarak kullanılan 'datetime', tarihleri "1753-01-01" ve yeni türleri "date", "datetime2", "datetimeoffset" değerlerini "0001-01-01", sadece FYI'ye kadar destekler. –
En düşük değerden ziyade bir referans aradığım için (minimum değer referans olarak verilse de ...), buna bağlı kalacağım: select to_timestamp (0) :: date; – doublebyte