FREETDS Problèmes de dateformat

Ci-dessous une instruction SQL

SELECT getdate() go 

Quand je cours à partir du studio de gestion SQL Server, il donne

 "Jul 27 2016 22:00:00.860" 

Quand je cours la même chose de sqsh il donne

 "Jul 27 2016 10:00PM" 

sqsh utilise freetds pour se connecter au server SQL depuis ma machine Linux. J'ai un programme C qui utilise freetds et il fonctionnera bien lorsque la date est récupérée au format 24 heures.

Je suppose qu'il ya des parameters pour freetds pour get la date dans le format requirejs, quelqu'un peut-il s'il vous plaît suggérer comment accomplir cela par les parameters freetds.

Voici ce que je viens de faire sur ma boîte linux ubuntu:

  1. Tapez cette command sur le shell bash: locale Mon résultat (raccourci): LANG=en_US

  2. Copiez le file locales.conf dans le directory de configuration: sudo cp /usr/share/doc/freetds-common/examples/locales.conf /etc/freetds/

  3. ouvrir le file /etc/freetds/locales.conf dans un éditeur
  4. commenter l'ancien format de date défini dans le file locales.conf (j'ai utilisé ";" comme commentaire char), copyr la ligne
  5. Définissez un format de date dont vous avez besoin dans la section correspondante du file locales.conf

    [en_US]

    ;date format = %b %e %Y %I:%M:%S:%z%p

    date format = %Y-%m-%d %H:%M:%S

Maintenant, je reçois de sqsh :

 SELECT getdate(); : 2016-08-01 11:37:45 

Actuellement, le format de date par défaut renvoyé par FreeTDS est configuré dans le file locales.conf . Voir http://www.freetds.org/userguide/locales.htm pour plus de détails.