2009-09-07 11 views
1

Quelqu'un sait comment extraire la date d'un horodatage dans le cadre de la clause where?date d'extraction du datetime stamp

par ex.

select * 
from tableA 
where date between '01/08/2009' and '31/08/2009' 

(date est un timestamp!)

Un grand merci, Fiona

+2

Quelle base de données utilisez-vous? – LukeH

+0

Salut Luke, j'utilise le serveur MS SQL. Merci Fiona –

+0

+1 à Luke. Très dépend du moteur de base de données –

Répondre

5

Si ce serveur est sql, il est impossible. Le nom de timestamp data type est trompeur, car il ne stocke aucune information de date d'aucune sorte. Tout ce qu'il contient est une valeur séquentielle qui vous permet d'établir un ordre d'enregistrement (par exemple, l'élément A a été créé avant l'élément B). Vous n'avez donc pas assez d'informations dans cette colonne pour savoir le jour où la ligne a été créée.

Depuis le lien fournis sont Sql Server 2000 spécifique, vérifiez également ce lien pour plus d'informations sur SQL Server 2008:
http://msdn.microsoft.com/en-us/library/ms182776.aspx

horodatage est le synonyme du type de données rowversion et est soumis au comportement des synonymes de type de données. Dans les instructions DDL, utilisez rowversion au lieu de timestamp autant que possible.

Pour construire une véritable colonne d'horodatage dans Sql Server, utilisez un type de données DateTime (ou DateTime2) et définissez sa valeur par défaut de getdate() ou current_timestamp.

3

Si une réelle valeur datetime, non TIMESTAMP/rowversion qui est binaire (8) ...

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, @MyValue), 0) 
Questions connexes