我试着描述我的问题。当我通过Erlang odbc API进行查询时:
odbc:sql_query(Ref,“SELECT getdate()”)。
{selected,[[]],[{{{2011,11,25},{8,46,27}}}]}
我阅读了Erlang ODBC文档,并没有为时间戳找到合适的odbc_data_type()。一些潜入otp_src_R14B04 / lib / odbc / c_src / odbcserver.c后发现了USER_TIMESTAMP。我检查过,当将{sql_timestamp,[{{2011,11,2},{15,29,46}}]}之类的内容传递给param_query / 3时,它可以正常工作。 :如果通过本机sql客户端进行此类查询,我将得到一些不同的数据:“2011-11-25 09:02:44.053”。看看最后3位数,它错过了我通过Erlang获得的数据。我的问题是:
我如何告诉Erlang不要尝试将datetime字段转换为sql_timestamp元组或者如何在不更改查询的情况下修复此问题(在查询中没有CAST到varchar)?
P.S。我使用mssql server 2008,但也许这是常见的问题?