运行以下查询时。select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = to_char('12-02-2012','DD-MM-YYYY');
出现的错误为“SQL 状态 42725:错误:函数 to_char(未知,未知)不是唯一的”
如何在选择查询之上运行?
运行以下查询时。select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = to_char('12-02-2012','DD-MM-YYYY');
出现的错误为“SQL 状态 42725:错误:函数 to_char(未知,未知)不是唯一的”
如何在选择查询之上运行?
你可能的意思是to_char('12-02-2012'::date, 'DD-MM-YYYY')
。to_char
无法将纯字符串转换为字符串。尽管如此,这似乎没有意义,您需要这两者之一,具体取决于您的日期常量的格式(无法从您提供的实际示例日期确定):
select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = '12-02-2012';
select * from surgicals where to_char(dt_surgery ,'MM-DD-YYYY' ) = '12-02-2012';
这里的错误是您正在对日期进行字符串比较。使用日期/时间数学,它可以考虑到时区等有趣的事情,并且仍然正确。
也许这就是你需要的:
SELECT *
FROM surgicals
WHERE date_trunc('day', dt_surgery) = '2012-02-12'
;