【问题标题】:how to pass datetime format using perl script to sql server?如何使用 perl 脚本将日期时间格式传递给 sql server?
【发布时间】:2013-06-04 17:06:14
【问题描述】:
#!/usr/bin/perl

      use DBI;
      use Data::Dumper;
      use strict;


       my $DSN = q/dbi:ODBC:SQLSERVER/;
       my $uid = q/username/;
       my $pwd = q/password/;

       my $first_param=723454;
       my $current_date="2012-10-25 00:30:21";
       my $after_2min="2012-10-25 05:47:41";


       my $dbh = DBI->connect($DSN,$uid,$pwd) or die "Coudn't Connect SQL"; 

       my $sql2 = "insert reverise_call_main_menu call_number,call_originate_time,call_inbetween_time,call_after_2min_time) values(?,?,?,?)";
       my $sth2 = $dbh->prepare($sql2);
       $sth2->execute($first_param,$current_date,'null',$after_2min);

       $sth2->finish;
       $dbh->disconnect;

每当我执行程序时,都会出现以下错误:

输出:-

DBD::ODBC::st 执行失败:[unixODBC][FreeTDS][SQL Server]从字符串转换日期时间时转换失败。 (SQL-22007)

【问题讨论】:

  • martin-evans.me.uk/node/54 看起来并不简单
  • 看起来您必须提供某种强制才能将其放入数据库。这里有一个类似的线程:stackoverflow.com/questions/3044445/…
  • 自从我用 PERL 编码以来已经很久了...您确定错误与您的日期时间格式有关吗?那'null'呢,不应该是undef吗?此外,您的 INSERT stmt 看起来在表名后缺少一个左括号。

标签: sql-server perl


【解决方案1】:

错误消息表明 SQL Server 不喜欢您的日期时间字符串的格式。您可能希望使用DateTime::Format::DBI 来帮助获得正确的格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多