Je travaillais sur un système d'information qui rassemble les informations des élèves pour les enseignants. Une partie de celui-ci dépasse la valeur du sélecteur datetime sur la base de données via command.parameters.addwithvalue. Je demande donc s'il existe un moyen d'analyser le datetime oicker afin qu'il n'y ait que la date apparaissant sur la base de données. Actuellement, date et heure (régler la date et 12:00:00 est affiché.

-2
Danel Dave Barbuco 19 nov. 2018 à 16:00

3 réponses

Meilleure réponse

Dans SQL2016, vous pouvez utiliser le type de données date au lieu de datetime si vous n'avez pas besoin de temps. Si le type de données de la colonne est datetime, vous aurez toujours une heure qui lui est associée (si vous fournissez simplement une date à SQL pour la valeur, il définira l'heure sur minuit - 00:00:00).

Types de données de date et d'heure en SQL: https://docs.microsoft.com/en-us/sql/t-sql/functions/date-and-time-data-types -and-functions-transact-sql? view = sql-server-2016 # DateandTimeDataTypes

Si vous ne voulez pas (ou si vous ne pouvez pas) changer le type de données dans la base de données, alors du côté C #, vous pouvez au moins vous assurer que toutes les heures sont normalisées à minuit à partir d'un datetimepicker en utilisant { {X0}} où ControlName est le nom de votre contrôle datetimepicker. (Avoir toutes les heures normalisées à minuit peut faciliter l'écriture de requêtes SQL lorsque tout ce dont vous avez vraiment besoin est la date mais que vous êtes coincé avec un type de données datetime)

Propriété DateTime.Date dans .net: https: // docs. microsoft.com/en-us/dotnet/api/system.datetime.date?view=netframework-4.7.2

0
Shawn Pence 19 nov. 2018 à 23:32

J'ai également une fonction C # pour ce problème;

    public String ArrangeDate (string S) 
    {
        FirstPoint = S.IndexOf(".");
        SecondPoint =S.IndexOf(".",FirstPoint+1); 
        S= S.Substring(SecondPoint+1,4) + "-" +S.Substring(FirstPoint+1,SecondPoint-FirstPoint-1)+ "-" + S.Substring(0,FirstPoint);
        return S;
        }
0
CAGDAS AYDIN 20 nov. 2018 à 07:50

Envoyez le texte datetimepicker à la procédure stockée comme le paramètre varchar avec l'heure. Et analysez-le dans SP comme ça

    create SP 
    @Date varchar(50)
    as

      declare @DateX smalldatetime

      select @DateX=Convert(smalldatetime,substring(@Date,7,4)  +'-' + substring(@Date,4,2) +'-' + substring(@Date,1,2))
0
CAGDAS AYDIN 20 nov. 2018 à 07:48