前因:20130724~~~在做公司的一个项目时,是由C--->Java的移行。发现在C代码中有如下SQL语句:
SELECT TO_CHAR(CURRENT_TIMESTAMP "YYYYMMDD") AS CURRENT_TIMESTAMP
问题:为什么没有FROM字句呢?那么这样它是从哪里取到这个字段的呢?
思考:写错了~~不能啊,这个系统已经在客户那边正常运行了。
C中可以这么写~~~这和编程语言没什么关系呀,这是SQL语句。
难道Oracle数据库支持这么做(此次系统开发采用的是Oracle数据库)~~~有可能。最后发现其实是错的,Oracle其实是不支持这么做的。
解决:
这和你当前所使用的数据库是有关的。
在MySql数据库中可以有如下操作:(不区分大小写)
SELECT CURRENT_DATE; -- 获取当前日期
SELECT CURRENT_TIME; -- 获取当前时间
SELECT CURRENT_TIMESTAMP; -- 获取时戳即日期时间
在
SQLServer数据库中则为:(不区分大小写)
SELECT getdate();
在
Oracle数据库中:(不区分大小写)
SELECT CURRENT_TIMESTAMP FROM DUAL;
附:DUAL表见Oracle目录中的介绍。