【发布时间】:2015-11-10 12:37:05
【问题描述】:
我有一些用于 Oracle 的 sql 语句。我的一个程序使用了这个 sql 语句。 我想在我的程序中支持 Oracle 和 SQL-Server,而不需要针对 Oracle 和 SQL-Server 使用不同的 sql 语句。
对于特定的 Oracle SQL 语句,我可以使用哪种替代方法:
- to_char(FIELDNAME, 'YYYY')
- to_char(FIELDNAME, 'YYYYMMDD')
- to_char(FIELDNAME, 'DD.MM.YYYY')
sql 语句必须适用于 Oracle 和 SQL-Server。
【问题讨论】:
-
从您的数据库中选择日期作为日期并使用应用程序代码对其进行格式化。
-
如果想要这样的功能,需要自己写。但即便如此,您也不能对两个 DBMS 使用相同的语法,因为 SQL Server always 需要完全限定的函数名(例如
select dbo.my_tochar(...) ..),而 Oracle 不需要(而且您通常不需要)有一个模式dbo仅用于功能)。另一种选择是定义一个使用 DBMS 特定函数返回格式化日期的视图。
标签: sql sql-server oracle to-char