2

SQL ステートメントの下

SELECT getdate()
go

SQL Server管理スタジオから実行すると、

"Jul 27 2016 22:00:00.860"

sqshから同じものを実行すると、

"Jul 27 2016 10:00PM"

sqsh は freetds を使用して、Linux ボックスから SQL サーバーに接続します。freetds を使用する C プログラムがあり、日付が 24 時間形式で取得されたときに正常に動作します。

freetds が必要な形式で日付を取得するための設定があると思います。

4

2 に答える 2

4

ubuntu Linuxボックスで行ったことは次のとおりです。

  1. bash シェルで次のコマンドを入力します: localeMy result (shortened):LANG=en_US

  2. locales.conf ファイルを config ディレクトリにコピーします。sudo cp /usr/share/doc/freetds-common/examples/locales.conf /etc/freetds/

  3. /etc/freetds/locales.confエディターでファイルを開く

  4. locales.conf ファイルで定義されている古い日付形式をコメントアウトし (コメント文字として「;」を使用しました)、次の行をコピーします。

  5. locales.conf ファイルの対応するセクションで、必要な日付形式を定義します。

    [en_US]

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

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

  6. Web サーバー プロセスを再起動します

今私はから得ますsqsh

SELECT getdate();
: 2016-08-01 11:37:45
于 2016-08-01T09:38:20.127 に答える
0

現在、FreeTDS によって返されるデフォルトの日付形式はlocales.confファイルで構成されています。詳細については、 http://www.freetds.org/userguide/locales.htmを参照してください。

于 2016-07-28T03:36:05.057 に答える