Dans votre requête SQL, vous pouvez simplement spécifier que vous ne voulez pas la partie du temps de la valeur heure/date en utilisant cette syntaxe:
SELECT DATE(timedatecolumn) WHERE whatever = whatever
Si vous voulez vraiment vous faire plaisir, vous pouvez utiliser DATE_FORMAT et le sortir comme bon vous semble. Par exemple:
SELECT DATE_FORMAT(timedatecolumn, '%W, %M %D, %Y') WHERE blah = blah
serait sortie (si la date était aujourd'hui):
Thursday, April 23rd, 2009
Les différentes options pour les formats de date (MySQL) sont à:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format
également , gardez à l'esprit que la valeur de date dans Excel (si elle est formatée comme une date réelle, pas seulement comme une chaîne) n'est pas réellement ce que vous voyez dans la cellule. Il s'agit de la valeur de date de Microsoft (essentiellement un nombre entier qui correspond à une date et une heure dans la logique Microsoft). Par conséquent, si vous souhaitez qu'Excel reconnaisse et traite la valeur comme une date (par exemple, les valeurs qui sont plus anciennes ou sur un mois spécifique, etc.) vous avez juste besoin de formater la colonne pour ne pas montrer la partie de temps de la valeur.
Si vous voulez perdre le temps parce que vous ne voulez pas les événements qui sont marqués comme passe une heure plus tard à traiter différemment, il vous suffit d'arrondir la valeur vers le bas en utilisant la fonction SOL:
FLOOR(somedatecell, 1)
Étant donné que la partie temps de la valeur est toujours une décimale suivant la partie date de la valeur, elle sera arrondie à partir de, disons 39926.2725925926 (aujourd'hui à 6:32:32 AM) à seulement 39926 (aujourd'hui à minuit).
Vous devez encore formater la cellule pour se débarrasser de la partie temps, mais maintenant toutes les dates qui sont égales sont en réalité égales, et non désactivées par des heures ou des minutes.
Cependant, si vous voulez simplement la date comme une chaîne, vous devrez convertir le datevalue en texte en utilisant la fonction TEXTE:
TEXT(somedatecell,"mm/dd/yyyy")
Si vous voulez être super-anal (comme moi, mais ce n'est pas nécessaire), vous pouvez arrondir la valeur de date jusqu'à minuit d'abord, puis le convertir en texte en utilisant cette formule:
TEXT(FLOOR(somedatecell, 1), "mm/dd/yyyy")
Excel ne fond que pour vous quand vous dites que vous voulez formater le texte en utilisant la format de date, mais juste au cas où vous aimez les choses plus soignées, vous pouvez arrondir premier
si (connection.DataSource.EndsWith ("mdb")) { Command.CommandText = "Format SELECT ([InvDate], 'aaaa-mm-dd') AS InvDate DE Foo"; } else { command.CommandText = "SELECT remplacer (convertir (varchar (11), [InvDate], 102), '.', '-') AS InvDate FROM Foo"; } Je pense que cela fonctionne également. – Chakra