Bonjour,

J'ai un petit problème tout bête mais qui commence à m'énerver car je n'en comprend pas tout les tentants et aboutissants.

Dans une requête de mise à jour d'une procédure stockée, je souhaite affecter à une colonne de type DATETIME la valeur de la date-heure courante, sans la précision milli-secondes (donc qui sont nulles).
Pour ce faire, j'ai commencé à utiliser le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CONVERT(VARCHAR, GETDATE(), 20)
qui passe avec l'analyseur de requête mais qui me provoque une erreur avec le SQL Agent.

J'ai ensuite essayé naivement celui-ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CONVERT(CHAR(19), GETDATE())
qui ne passe ni avec l'Analyseur de requête, ni avec le SQL Agent.

Dans le procédure stockée, j'ai essayé de jouer avec SET DATEFORMAT, ce qui m'entraîne d'autres erreurs ailleurs dans le code de la PS.

Les erreurs sont du style :
Msg 242, Sev 16 : La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et d'heure.
Il est facile d'avoir un format avec juste les minutes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CONVERT(SMALLDATETIME, GETDATE())
Mais j'ai besoin des secondes et les milli-secondes doivent être obligatoirement nulles.

J'ai trouvé plein d'infos sur le sujet, mais rien qui n'arrive à éclairer ma lanterne.

Merci d'avance pour votre aide.