FREETDS Dateformat问题

时间:2016-07-27 14:12:18

标签: c sql-server freetds sqsh

下面的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设置来完成。

2 个答案:

答案 0 :(得分:2)

这就是我刚刚在我的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. 现在我来自sqsh

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

答案 1 :(得分:0)

目前,FreeTDS返回的默认日期格式是在locales.conf文件中配置的。有关详细信息,请参阅http://www.freetds.org/userguide/locales.htm