在erlang中的odbc datetime转换

时间:2012-03-19 11:24:02

标签: sql erlang

由于某种原因,需要将sql时间戳yYYY-MM-DD HH:MM:SS转换为erlang时间形式{{Y,M,D},{H,M,S}}。

幸运的是,当我查询数据库时,返回值已经形成为{{Y,M,D},{H,M,S}}。

喜欢:

     [{4,null,null,null,null,
              {{2012,12,17},{14,54,4}}, % time-stamp already convert
                                        % from 2012-12-17 14:54:04
                    0,678,51,61}] 

然后还需要将erlang时间形式{{Y,M,D},{H,M,S}}转换为SQL时间戳形式YYYY-MM-DD HH:MM:SS, 在一些搜索之后,没有这样的直接功能。 所以我写下如下的乐趣

 my_time() ->
      {{Y,Mo,D},{H,Mi, S}} = erlang:localtime(),
      TSString = 
    integer_to_list(Y)++"-"++ 
            integer_to_list(Mo)++"-"++ 
            integer_to_list(D)++" "++
        integer_to_list(H) ++ ":" ++ 
            integer_to_list(Mi) ++ ":" ++ 
            integer_to_list(S),
      TSString.

它有效,但我不喜欢它。有没有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

使用lib_io:format()会稍微清理一下:

my_time() ->
 {{Y,Mo,D},{H,Mi, S}} = erlang:localtime(),
 io_lib:format("~4.10.0B-~2.10.0B-~2.10.0B ~2.10.0B:~2.10.0B:~2.10.0B", [Y, Mo, D, H, Mi, S]).