select current_timestamp及Oracle中的DUAL表

来源:互联网 发布:sql查询结果生成新表 编辑:程序博客网 时间:2024/06/05 13:23

前因: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;


推断结论:在C系统中使用的应是SQLServer数据库,而现在移形Java后就应改变写法。


附:DUAL表见Oracle目录中的介绍。


原创粉丝点击