J'ai une fonction SQL Server qui convertit un paramètre de durée de jour nvarchar en valeur datetime.Transformation du paramètre de durée du jour nvarchar en date-heure
Le jour format de durée est > jours <> heures <:.> Minutes <, par exemple 1.2: 00 pour un jour et deux heures.
Le format du paramètre de durée du jour ne peut pas être modifié et nous pouvons être sûrs que toutes les données sont correctement formatées et présentes.
En donnant à la fonction une heure de début et le réglage de la durée du jour, elle doit retourner l'heure de fin.
Par exemple: 2010-01-02 13:30 ==> 2010-01-03 02h00
J'utilise une combinaison de charindex, et convertir des méthodes sous-chaîne pour calculer la valeur, qui est plutôt lent et akward. Existe-t-il un autre moyen de convertir directement ce paramètre de durée de jour en valeur de date/heure?
Ouais ... Je sais que, malheureusement, mais le format est en quelque sorte l'héritage et je ne peux pas le changer car il est utilisé dans d'autres systèmes. – Drejc
@Drejc - Je ne pense pas qu'il y ait un autre moyen d'être honnête. Est-ce définitivement la cause de la lenteur des performances? L'autre chose que je suggère est de ne pas faire le calcul dans SQL Server, mais retourner les deux champs tels quels et laisser le code appelant le faire qui fonctionnera mieux à la manipulation de la chaîne – AdaTheDev
Ceci est réellement fait de la façon dont vous décrivez, sauf pour une situation, où le calcul doit être effectué du côté SQL. Il ne provoque pas de réponses lentes ou des problèmes similaires, mais c'est juste une solution laide. – Drejc