Sql server datetime

brmdevinci Messages postés 4 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 6 mai 2009 - 29 avril 2009 à 12:58
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 - 28 sept. 2010 à 22:48
svp j'execute cette requete " select * from personne where date_nais='12/02/1986'" la resultat est un tableau vide sachant que quand j'ai remplit la table personne , colonne date_nais j'ai utilisé la methode getdate()
'create table personne(id int primary key,nom varchar(20),prenom varchar(20),date_nais getdate())

7 réponses

gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 1
29 avril 2009 à 20:06
salut,
'est normal, getdate() retourne la date heure seconde de l'instant précis ou il est appeler equivalent de now() en vb ou excel. donc si tu fait un selet * from personne tu verras quelle valeurs il a attribué.

Aussi pour info:
'12/02/1986' = '12/02/1986 00:00:00' donc attention aux heure minute seconde à prendre en consieration dans les comparaisonts de date
Bonne chance
greg

greg
0
brmdevinci Messages postés 4 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 6 mai 2009
6 mai 2009 à 00:28
merci bq
0
dymsbess Messages postés 56 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 4 janvier 2010 1
24 juin 2009 à 14:04
Pour initialisre une date à minui par défaut il y a plusieurs méthodes :

http://www.xoowiki.com/Article/SQL-Server/datetime-a-minuit-89.aspx
0
nivsql Messages postés 159 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 14 décembre 2010 1
24 juin 2009 à 16:36
Tu peux aussi utiliser la fonction convert() pour te sortir de cette situation

Exemple :

select * from personne where CONVERT(VARCHAR,date_nais,103) = '12/06/1986'

le Flag 103 correspond a un masque de date en JJ/MM/AAAA, sur la plus part des SQL Server le masque de date par defaut est AAAA-MM-DD HH24:MI:SS.MSS

En l'état meme si tu avais initialisé toutes tes dates a minuit, ta requete n'aurais retourné aucune données, tu aurais du comparer a '1986-06-12' pour avoir un résultat.

Je te recommande la lecture de l'aide de la fonction CONVERT dans la documentation SQL Server 2005.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dymsbess Messages postés 56 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 4 janvier 2010 1
25 déc. 2009 à 13:23
L'instruction uilisée par nivsql exclut la comparaison des heures. Initialiser les dates à comparaison, à minuit, revient exactement. Sauf que la seconde méthode permet en plus de d'affranchir du paramétrage de langue sur le serveur SQL et/ou les connexions. L'uitlisation de la fonction CONVERT(VARCHAR,date_nais,103) est rarement utilisable sans l'instruction SET LANGUAGE French avant pour fonctionner dans n'importe quel contexte.
0
zizouwa00 Messages postés 1 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 27 septembre 2010
27 sept. 2010 à 01:13
Bonjour a TOus je m retouve ici pr une derniere solution prcq j'ai cherché partt mais j'ai rien trouvé , pr un champs datetime (durée)dans sql server j'ai besoin de faire la somme totale de ces durées HH:MM:SS++.... AIDEZ MOI SVP
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
28 sept. 2010 à 22:48
Salut zizouwa00,


Normalement un CONVERT(VARCHAR,date_heure,114) devrait extraire l'heure d'une date au format 24h

Je n'ai pas de SQL Serveur sous la main, mais une requête de ce type devrait répondre à ta demande

SELECT CONVERT(VARCHAR,SUM(date_heure),114) AS duree FROM NOM_TABLE WHERE ...


Vérifier également dans le cas où la somme dépasse les 24h ce que donne la requête.

++

Zlub
0
Rejoignez-nous