SQL Server : Ajouter une heure fixe à la date du jour ?
Bonjour,
La fatigue aidant, ma réflexion ralentit gravement et j'espère un peu d'aide :(
Contexte : pour générer un rapport, je souhaite mettre la date du jour (de génération du rapport, qui sera donc variable) mais en fixant l'heure à 16h.
Le SGBD étant SQL Server, je peux utiliser des commandes SQL Server ou Globales, mais ça élimine MySQL, PostGreSQL ou autres. ;)
J'ai bien la première partie : récupérer la date courante au format date et non Datetime :
Code:
1 2
|
SELECT CAST(GETDATE() AS DATE) |
Je suppose que je vais devoir utiliser la fonction CONVERT(), mais je ne sais pas la former correctement.
J'ai tenté cette version :
Code:
1 2
|
SELECT CONVERT(DATETIME, CONCAT(CAST(GETDATE() AS DATE), '16:00:00')) |
Mais le serveur n'est pas d'accord :
Code:
1 2 3
|
Msg*241, Niveau*16, État*1, Ligne*1
Conversion failed when converting date and/or time from character string. |
Je pars du principe que le rapport pourra être généré quasiment à n'importe quelle heure du jour comme de la nuit (on peut programmer avec des valeurs par défaut pour avoir un envoi automatique), donc je ne peux pas par exemple utiliser Dateadd pour ajouter X heures à la date du jour, X serait trop variable. :(
Je suis pourtant quasiment certain que la solution est presque sous mes yeux, mais je n'ai pas les bonnes lunettes :mouarf:
Merci
Edit : honte à moi, je n'ai pas assez bien utilisé la fonction recherche : https://www.developpez.net/forums/d1...ui-heure-fixe/
Ce qui pour mon cas donne :
Code:
1 2
|
SELECT cast(floor (cast ( getdate() as float )) + 16.00/24 as datetime ) |
Et ça me renvoie la date du jour à 15:59:59:940 (ça devrait aller pour 60ms :)).
Je vais passer le sujet en résolu, si ça peut aider quelqu'un qui n'a pas les yeux en face des trous (désolé pour le doublon :oops:)