declDate: string;declDate := FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);表 T_DECL_BASEdeclno DECL_DATE
1 2005-10-28 14:22:20
2 2005-10-28
3 2005-01-01 14:22:20
4 2005-1-1 14:22:20
5 2005-1-1
6 2005-1-1 下午 14:22:20
7 2005-10-28 上午 14:22:20
1、我这里有 表T_DECL_BASE , 其中字段 DECL_DATE 值类型为 VARCHAR(23)
2、我需要通过 传进去时间的值 declDate 来查询 整个表
如 select * from T_DECL_BASE a
where to_char(to_date(a.DECL_DATE,'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd') ='+ declDate +'
3、由于 表里 时间 数据格式不统一 ,只能查询 部分数据出来,大家看下能有什么语句进行查询吗? (象 我之上的语句 就无法查询出 带中文字的 的时间来,大家看如何写这个语句可以查询)
1 2005-10-28 14:22:20
2 2005-10-28
3 2005-01-01 14:22:20
4 2005-1-1 14:22:20
5 2005-1-1
6 2005-1-1 下午 14:22:20
7 2005-10-28 上午 14:22:20
1、我这里有 表T_DECL_BASE , 其中字段 DECL_DATE 值类型为 VARCHAR(23)
2、我需要通过 传进去时间的值 declDate 来查询 整个表
如 select * from T_DECL_BASE a
where to_char(to_date(a.DECL_DATE,'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd') ='+ declDate +'
3、由于 表里 时间 数据格式不统一 ,只能查询 部分数据出来,大家看下能有什么语句进行查询吗? (象 我之上的语句 就无法查询出 带中文字的 的时间来,大家看如何写这个语句可以查询)
where to_char(to_date(substr(a.DECL_DATE,10),'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd') ='+ declDate +'
try:select * from T_DECL_BASE a
where to_char(to_date(substr(a.DECL_DATE,10),'yyyy-MM-dd'),'yyyy-MM-dd') ='+ declDate +'
(
SELECT 1 AS declno ,'2005-10-28 14:22:20' AS DECL_DATE FROM DUAL UNION
SELECT 2, '2005-10-28' FROM DUAL UNION
SELECT 3, '2005-01-01 14:22:20' FROM DUAL UNION
SELECT 4, '2005-1-1 14:22:20' FROM DUAL UNION
SELECT 5, '2005-1-1' FROM DUAL UNION
SELECT 6, '2005-1-1 下午 14:22:20' FROM DUAL UNION
SELECT 7, '2005-10-28 上午 14:22:20' FROM DUAL
)SELECT T.*,
TO_CHAR(TO_DATE(CASE
WHEN LENGTH(T.DECL_DATE) <= 10 THEN
T.DECL_DATE
ELSE
SUBSTR(T.DECL_DATE, 1,
INSTR(T.DECL_DATE, ' ') - 1
)
END,
'YYYY-MM-DD'),
'YYYY-MM-DD') AS DECL_DATE_1
FROM T_DECL_BASE T
WHERE TO_CHAR(TO_DATE(CASE
WHEN LENGTH(T.DECL_DATE) <= 10 THEN
T.DECL_DATE
ELSE
SUBSTR(T.DECL_DATE, 1,
INSTR(T.DECL_DATE, ' ') - 1
)
END,
'YYYY-MM-DD'),
'YYYY-MM-DD') ='+ declDate +'
2005-1-1的情况下, substr(T.DECL_DATE,10),'yyyy-MM-dd')会出错的
WHERE TO_CHAR(TO_DATE(CASE
WHEN LENGTH(a.DECL_DATE) <= 10 THEN
a.DECL_DATE
ELSE
SUBSTR(a.DECL_DATE, 1,
INSTR(a.DECL_DATE, ' ') - 1
)
END,
'YYYY-MM-DD'),
'YYYY-MM-DD') ='+ declDate +'
where to_char(to_date(a.DECL_DATE,'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd') ='+ declDate +' 我使用这个语句 在PL/SQL 查询时 报 '在要求输入字符处找到非数字字符'怎么解决呀??
但因为 查询出的数据中 有中文的 报 '在要求输入字符处找到非数字字符' .请问能不能通过语句来解决这个错误?
2005-10-28 14:22:20
2005-10-28
2005-01-01 14:22:20
2005-1-1 14:22:20
2005-1-1
2005-1-1 下午 14:22:20
2005-10-28 上午 14:22:20 Delphi(Pascal) code
sql: TStrings;
declDate :string;sql.Append('insert into T_DECL_BASE (DECL_NO,DECL_DATE)');
sql.Append(' values (:P1,:P2)'); if not adoConn.Connected then adoConn.Open();
adoConn.BeginTrans();
adoQuery.SQL.Clear();
adoQuery.SQL.AddStrings(sql);
adoQuery.Parameters.ParamByName('P1').Value:= declNo;
adoQuery.Parameters.ParamByName('P2').Value:= declDate;
请问 我需要 :
1、因为declDate的字段非常乱 把declDate 按 'yyyy-MM-dd hh24:mi:ss' 的规定格式 插入数据库 请问 如何写 adoQuery.Parameters.ParamByName('P2').Value:= declDate 这条语句?