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有一些设置可以获取所需格式的日期,有人可以建议如何通过freetds设置来实现这一点。

4

2 回答 2

4

这是我刚刚在我的 ubuntu linux 机器上所做的:

  1. 在 bash shell 中键入此命令:locale我的结果(缩短):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 回答