Plus tôt Timestamp pris en charge dans PostgreSQL

Je travaille avec différentes bases de données dans un certain nombre de fuseaux horaires différents (et des périodes de temps) et une chose qui, normalement, est originaire des problèmes, est la date/heure de définition.

Pour cette raison, et depuis une date est une référence à une valeur de départ, pour garder une trace de la façon dont il a été calculé, j'ai essayer de stocker la date de base; à savoir: le montant minimum de la date de prise en charge dans l'ordinateur/de base de données;

Si je vois bien, cela dépend du SGBD et le stockage de ce type.
Dans SQL Server, j'ai trouvé un couple de façons de calculer cette "date";

SELECT CONVERT(DATETIME, 0) 

ou

SELECT DATEADD(MONTH, 0, 0 ) 

ou même un casting comme ceci:

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))

(où @dt est une variable datetime)

Ma question est, est-il un semblable mode de calcul de la date de base PostgreSQL, c'est à dire: la valeur du minimum de la date de prise en charge et est sur la base de tous les calculs?

À partir de la description de l' date type, je peux voir que le minimum date de prise en charge est 4713 avant jc, mais il est un moyen d'obtenir cette valeur par programme (par exemple sous la forme d'un chaîne de date), comme je le fais dans SQL Server?

Vous pouvez bien appeler cette "0 jour" une date de base en SQL Serveur, mais si vous pensez que c'est également le minimum date de prise en charge (et de vos mots, il ne semble pas comme vous le faites), vous vous trompez. Il serait de convertir à 1900-01-01, et smalldatetime est la seule date/heure type qui ne peut pas gérer les dates plus tôt. Sans doute la plus largement utilisée datetime soutient les dates de 1753-01-01, et les nouveaux types de date, datetime2, datetimeoffset valeurs de support vers le bas pour 0001-01-01, juste pour info.
Depuis que je suis à la recherche d'une référence, plutôt que d'une valeur minimale (même si je l'ai bien la valeur minimale pourrait servir de référence...), je m'en tiendrai à cela: sélectionnez to_timestamp(0)::date;

OriginalL'auteur doublebyte | 2013-10-30