当前位置:首页 » 存储配置 » 存储过程系统时间

存储过程系统时间

发布时间: 2025-02-28 01:06:16

A. sql定义日期变量代码

您好,存储过程里参数的默认值不能使用函数,所以不能在存储过程里直接把参数的默认值设置为当前系统时间,不过可以在存储过程里赋值。还有一点疑问,既然@myday是当前系统时间了,为什么还要做成参数呢?

CREATE PROCEDURE pro_test
@myday char(10)
AS
set @myday=convert(char(10),getdate(),21)
update mytable set status = 1 where day>@myday
GO

@myday不为参数时可以这么写
CREATE PROCEDURE pro_test
AS
declare @myday char(10)
set @myday=convert(char(10),getdate(),21)
update mytable set status = 1 where day>@myday

B. 各位高手请问oracle 存储过程里时间为"23-JUN-11"如何转换为标准日期格式"YYYY-MM-DD" 谢谢了

跟你的系统时间格式也有关系,不知道你要在哪里改这个格式,如果这个是日期格式的话,可以这样改成字符串格式:to_char(日期字段, 'yyyy-mm-dd'),如果需要输出日期格式就再加一层:to_date(to_char(日期字段, 'yyyy-mm-dd'), 'yyyy-mm-dd')

C. 怎样用SQL需要修改系统当前时间因为系统时间不对现在。

这个东西得用个扩展存储过程xp_cmdshell 用来执行dos命令time的,
sql2000的话可以直接用,2000以上的版本默认是关闭这个扩展存储过程的,要开的话用下面脚本
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO
改时间的话:exec xp_cmdshell 'time xxxx-xx-xx'

D. Sql中取得当前系统时间

如果要在SQL里写的话,递增需要用存储过程或触发器或用户函数来写。
如果只是为了不重复的话,可以用当前时间的millisecond来区分,如我在你另一相同的问题中回答的:

http://..com/question/11983880.html
用 DATEPART() 结合 GETDATE() 等函数来取值
SELECT CAST(DATEPART(Hour,GETDATE()) AS nvarchar(2)) +
CAST(DATEPART(minute,GETDATE()) AS nvarchar(2)) +
CAST(DATEPART(second,GETDATE()) AS nvarchar(2)) +
CAST(DATEPART(millisecond,GETDATE()) AS nvarchar(20))

这样可以得到不重复的值。

E. 存储过程第一次执行耗时30分钟,第二次开始每次耗时不到3分钟,这是什么原因

sql是高级语言,数据库系统执行sql之前要将sql语句进行解析(相当于编译),这个过程叫硬解析;数据库系统每次执行sql之前都会检查共享池中是不是存在已经解析过的语句,如果有就拿来直接用,这叫软结息。软解析比硬解析效率高,这是影响因素之一;
二、第一次执行可能没有走索引,第二次执行使用第一次执行的执行计划
三、看你的存储过程做了些什么,有可能第一次把活干完了,导致第二次执行没什么活干
以上回答基于oracle体系结构

F. sql server 存储过程 创建当前时间

Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/08 Select CONVERT(varchar(100), GETDATE(), 2): 08.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/08 Select C

G. 存储过程中 EXIT WHEN STARTTIME>=SYSDATE-1/24;是什么意思

首先。
EXIT WHEN
意思是 当某种条件满足的情况下 跳出 循环。
下面是一个最简单的例子
EXIT WHEN testvalue >= 5;

SQL> DECLARE
2 testvalue INT;
3 BEGIN
4
5 testvalue := 0;
6
7 LOOP
8 testvalue := testvalue + 1;
9 dbms_output.put_line( TO_CHAR(testvalue) );
10 EXIT WHEN testvalue >= 5;
11 END LOOP;
12
13 END;
14 /
1
2
3
4
5

PL/SQL procere successfully completed.

然后
STARTTIME>=SYSDATE-1/24;
STARTTIME 应该是你存储过程里面的一个变量。
SYSDATE 是 数据库系统的 当前时间
SYSDATE-1/24 是 数据库系统的 当前时间 - (1/24天) = 一小时以前

最后
EXIT WHEN STARTTIME>=SYSDATE-1/24;
意思就是,如果 STARTTIME 这个变量的数值,大于等于 一小时以前
那么跳出循环。

热点内容
linux制作包 发布:2025-02-28 04:38:41 浏览:989
词库加密软件 发布:2025-02-28 04:31:11 浏览:829
扫矿脚本原理 发布:2025-02-28 04:24:28 浏览:314
云票数字证书密码是什么 发布:2025-02-28 04:21:29 浏览:142
玩王者荣耀安卓哪个手机好 发布:2025-02-28 04:12:22 浏览:480
安卓手机记事记录在哪里 发布:2025-02-28 04:06:23 浏览:889
php类命名空间 发布:2025-02-28 03:53:38 浏览:457
压缩电脑壁纸 发布:2025-02-28 03:52:25 浏览:441
我的世界网易版怎么登服务器 发布:2025-02-28 03:52:18 浏览:234
如何存储cookie 发布:2025-02-28 03:43:47 浏览:334