SQl 不接受日期格式

Date Format not accepted in SQl

我有这样的查询

查询:

SELECT * FROM attendance_entry WHERE absent_date="Fri Feb 20 00:00:00 IST 2015";

在 Mysql absent_date 中采用这些格式 (yyyy-mm-dd)。

当我使用 Hiberante Criteria 时,它接受。 Query怎么写?

这很完美

SELECT * FROM attendance_entry 
WHERE absent_date=STR_TO_DATE('Fri Feb 20 00:00:00 IST 2015','%a %b %d %H:%i:%s IST %Y');

将 java Date 对象格式化为 sql 接受格式,然后将其传递给您的 sql 查询。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // or "yyyy-MM-dd hh:mm:ss"
Date today = new Date(); 
System.out.println(today); // Fri Feb 13 14:42:01 IST 2015
String fomattedDate = sdf.format(today);
System.out.println(fomattedDate); // 2015-02-13

// pass fomattedDate to sql
String sql = "SELECT * FROM attendance_entry WHERE absent_date="+fomattedDate";

首先你应该知道的是。

1.Which 您正在使用的格式以及您在创建 table.

时使用的格式类型是什么

2.You 可以通过 type desc "tablename"

看到这个

3.Are 您使用任何指定区域作为时间戳、区域(即:中国、印度、美国等)。 通过找到你可以做到的。

我只是创建了一个带有时间戳的 table, SQL> 改变会话集 NLS_TIMESTAMP_FORMAT='DD-MON-YY HH:MI:SSXFF';

会话已更改。

SQL> 创建 TABLE table_ts(c_id 数字,c_ts 时间戳);

Table 已创建。

SQL> INSERT INTO table_ts VALUES(1, '01-JAN-2003 2:00:00');

创建了 1 行。

SQL> INSERT INTO table_ts VALUES(2, TIMESTAMP '2003-01-01 4:00:00');

创建了 1 行。

SQL> 提交;

提交完成。

SQL> select * 来自 table_ts 其中 c_ts='01-JAN-03 04:00:00.000000';

C_ID

C_TS

     3

01-JAN-03 04:00:00.000000