【问题标题】:How to convert String to datetime in the SQL query? [duplicate]如何在 SQL 查询中将字符串转换为日期时间? [复制]
【发布时间】:2012-09-03 05:54:33
【问题描述】:

可能重复:
TSQL: datetime from character string error

我无法将字符串转换为日期时间。我使用的是 SQL Server 2005。

String frmDate="03/09/2012";
String toDate="04/09/2012";

SimpleDateFormat formater = new SimpleDateFormat("dd/MM/yyyy");
Date frmDate1 = formater.parse(frmDate);
Date toDate1=formater.parse(toDate);


 String query3="select * from dbo.Monthly_PFSPL "  +  
    "where Convert (datetime,Added_Date,103) "  +  
"between '"+frmDate1+"' and '"+toDate1+"' ";
        rsobj1=stat2.executeQuery(query3);

我遇到了这个异常:

java.sql.SQLException: Conversion failed when converting datetime from character string

【问题讨论】:

  • Added_Date 是什么数据类型?
  • 您应该将其更改为 datetime 并使用日期参数而不是在代码中生成查询。
  • 我也试过了,但是在插入 datetime 时出现错误 Additional_Date。所以我正在尝试这样。
  • 感谢大家的回复。我得到了解决方案,我终于将 Additional_Date 更改为 datetime,问题是导入 java.util.Date。但是现在使用 java.sql.Date 现在解决了。

标签: java sql-server-2005 jdbc


【解决方案1】:

必须必须使用 PreparedStatement 和参数化 SQL 语句。

String query="select * from dbo.Monthly_PFSPL where Convert(datetime,Added_Date,103) between  ? and ?";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多