Dapper renvoie le format de date inversé

c# dapper orm sql

Question

Dapper renvoie une colonne de type date dans un format différent de celui stocké dans la base de données.

format dans la base de données ----> 2012-05-19 15: 27: 00.000

Dapper retourne --------> 19-05-2012 15: 27: 00.000

var l = this.db.Query<myObject>("select id, received from myTable where( received between @d1 and @d2)",
                                                 new { @d1 = d1, @d2 = d2, }).ToList();

string  d1 = 2011-01-18 00:00:00
string  d2 = 2014-07-18 23:59:59

 public class myObjectIs 
 {
    public string id { get; set; }
    public string received { get; set; }

 }

received - type de données date

Dapper a-t-il un format prédéfini de type de date à renvoyer? Si oui, comment le changer?

Merci.

Réponse acceptée

Le problème semble être que vous utilisez une string pour received , au lieu d'un DateTime . Les dates / heures n'ont pas de format , jusqu'à ce que vous les obligiez à devenir une chaîne - à quel moment elles ne sont plus des dates / heures. Une date / heure est juste un nombre .

En dernier recours, si toutes les conversions intégrées sont épuisées, dapper utilise Convert.ChangeType en Convert.ChangeType entre les types. Cela entraînera l'utilisation régulière de ToString() dans ce cas. Si vous ne le voulez pas (et vous ne devriez pas vouloir cela): déclarez received comme un DateTime :

public DateTime received { get; set; }

De même, à partir des commentaires:

d1 et d2 sont des chaînes

Ils ne devraient pas l'être; ils devraient aussi être DateTime :

DateTime d1 = ..., d2 = ...

ou, à tout le moins, vous devez l'analyser dans votre code d'accès aux données:

new { d1 = [someparse(d1)], @d2 = [someparse(d2)], }

[someparse] est probablement quelque chose impliquant DateTime.Parse ou DateTime.ParseExact



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi