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
我有这样的查询
查询:
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