如何在ORACLE中取当前日期时间?

itren2002 2002-12-27 12:24:09
在SQLSERVER中可以通过函数GETDATE()来取的当前的日期和时间,那末ORACLE中如何取呢?
...全文
27609 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangcaibing 2002-12-28
  • 打赏
  • 举报
回复
我不知道Delphi怎么调用函数,
Ado.net是先添加要传递的参数并赋值,
然后执行存储过程
gks_cn 2002-12-28
  • 打赏
  • 举报
回复
sysdate
chen_cyh 2002-12-27
  • 打赏
  • 举报
回复
select sysdate from dual;
或者select sysdate from 任何一张你自己建立的表
还可以通过select to_char(sysdate,'yyyy-mm-dd') from dual;
来转换格式
beckhambobo 2002-12-27
  • 打赏
  • 举报
回复
sysdate
luckysxn 2002-12-27
  • 打赏
  • 举报
回复
UP
jiezhi 2002-12-27
  • 打赏
  • 举报
回复
select sysdate from dual;
itren2002 2002-12-27
  • 打赏
  • 举报
回复
不知道你是指什末?首先存储过程是没有问题的,在各位高手的指导下编译和利用ORACLE的工具进行调用都是正确的,如果是问SQLSERVER的写法则如下:
CREATE PROCEDURE WRITELOG(
@LogType VARCHAR(2),
@LogHintType VARCHAR(2),
@LogPerson VARCHAR(20),
@LogEvent VARCHAR(300),
@LogData VARCHAR(200),
@SysPamams VARCHAR(2),
@MODCaption VARCHAR(20))
AS
declare @DateTime DateTime
Select @DateTime=GetDate()
INSERT INTO LOGDATAINFO (LogType, LogHintType, LogPerson, LogEvent, LogData, SysPamams, MODCaption, DateTime)
VALUES (@LogType, @LogHintType, @LogPerson, @LogEvent, @LogData, @SysPamams, @MODCaption, @DateTime)
GO
我在DELPHI的SQL Explorer中执行如下语句
ORACLE数据库
EXECUTE WriteLog('0','0','系统管理员','删除企业类编码:SSSS',' ','0','企业类编码管理')
然后有错误提示
General SQL error.
ORA-00900: 无效 SQL 语句
SQLSERVER数据库
EXECUTE WriteLog '0','0','系统管理员','删除企业类编码:SSSS',' ','0','企业类编码管理'
调用正确且数据写入成功

  • 打赏
  • 举报
回复
你如何写的?
itren2002 2002-12-27
  • 打赏
  • 举报
回复
真是太感谢大家了,紧接着的一个问题和DELPHI有关,希望能继续得到大家的帮助;在大家的帮助下存储过程已经编译通过并且在SQLPLUS中也运行良好,但是当我在DELPHI中调用时却出现了问题,我的调用过程如下:

procedure TDBHouse.WriteLog(AErrType, ALogHintType, ALogPerson,
ALogEvent, ALogData, ASysPamams, AMod: String);
var
lProcWriteLog: String;
begin
lProcWriteLog :=Format('Execute WriteLog (''%S'', ''%S'', ''%S'', ''%S'', ''%S'', ''%S'', ''%S'')', [
AErrType, ALogHintType, ALogPerson, ALogEvent, ALogData, ASysPamams, AMod]);
qryPub.Close;
qryPub.SQL.Clear;
qryPub.SQL.Add(lProcWriteLog);
qryPub.ExecSQL;
end;

结果给出错误提示:
General SQL error.
ORA-00900: 无效 SQL 语句

如果是调用SQLSERVER的存储过程就是对的,这是怎末回事呢???
  • 打赏
  • 举报
回复
to_char(sysdate,'YYYY/MM/DD hh24:mi:ss')
beckhambobo 2002-12-27
  • 打赏
  • 举报
回复
SQL> select to_char(sysdate,'hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'HH24:MI:SS')
-----------------------------
13:54:43
itren2002 2002-12-27
  • 打赏
  • 举报
回复
不好意思,是我写错了,让大家见笑了。还有个问题,如何取得时间呢,因为光有日期没有时间日志也没有太大意义了
jin0607 2002-12-27
  • 打赏
  • 举报
回复
SELECT SYSTEM INTO ADATE FROM dual;--语句中的SYSTEM 应为sysdate.
  • 打赏
  • 举报
回复
sysdate
itren2002 2002-12-27
  • 打赏
  • 举报
回复
谢谢大家的帮助,我写了个过程,可是编译有错误,该过程就是写日志表请大家帮忙
CREATE OR REPLACE PROCEDURE "SYSTEM"."" (
ALogType IN VARCHAR2,
ALogHintType IN VARCHAR2,
ALogPerson IN VARCHAR2,
ALogEvent IN VARCHAR2,
ALogData IN VARCHAR2,
ASysPamams IN VARCHAR2,
AMODCaption IN VARCHAR2)
AS
ADATE DATE;
BEGIN
SELECT SYSTEM INTO ADATE FROM dual;--取掉此句就正确了,也就是说如何
--取得当前时间并付值给变量ADATE
INSERT INTO LOGDATAINFO (LogType, LogHintType, LogPerson, LogEvent, LogData, SysPamams, MODCaption, DATETIME)
VALUES (ALogType, ALogHintType, ALogPerson, ALogEvent, ALogData, ASysPamams, AMODCaption,ADATE);
commit;
END;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧