我目前正在使用 Oracle,但大多数 SQL 与数据库无关。一个例外是 CURRENT_TIMESTAMP,它在 MSSQL 中失败。是否也可以为此转向更可移植的语法?
根据他们的文档,以下供应商支持CURRENT_TIMESTAMP
.
- Oracle
- PostgreSQL
- MySQL
- SQL服务器
- Firebird
- H2
- HSQLDB
- DB2
- Vertica
- 系统间缓存
- Doctrine
- Teradata
总之,CURRENT_TIMESTAMP
是 SQL 标准中规定的方法,其摘要如下,如果您正在寻找与数据库无关的 SQL,您真正能做的最好的事情就是坚持该标准,尽管这并不能保证任何内容都完全与数据库无关:
6.32
Function
指定一个生成日期时间类型值的函数。
Format
<current date value function> ::= CURRENT_DATE`
<current time value function> ::= CURRENT_TIME [ <left paren> <time precision> <right paren> ]
<current local time value function> ::= LOCALTIME [ <left paren> <time precision> <right paren> ]
<current timestamp value function> ::= CURRENT_TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
<current local timestamp value function> ::= LOCALTIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
一般规则
1) CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP分别返回当前日期、当前时间、当前时间戳;返回的时间和时间戳值的时区位移等于 SQLsession 的当前默认时区位移。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)