當前位置:首頁 » 存儲配置 » 存儲過程系統時間

存儲過程系統時間

發布時間: 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