2015-02-07 56 views

回答

3

感謝您的回覆。

能夠拿出以下解決方案與您的支持。

select SQLEXT.regexp_like('2014-01-21 04:43:00','\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$') 
1

您可以使用隨附的INZA軟件包提供的isdate UDF。這是一個功能強大的函數,用於檢查輸入str以根據您提供的格式進行測試。

你必須把它安裝到你想用它在數據庫中,這樣

[[email protected] examples]$ pwd 
/nz/extensions/nz/nzlua/examples 
[[email protected] examples]$ ../bin/nzl -d testdb isdate.nzl 

Compiling: isdate.nzl 
#################################################################### 
UdxName  = isdate 
UdxType  = UDF 
Arguments = VARCHAR(40),VARCHAR(40) 
Result  = BOOL 
Dependencies = INZA.INZA.LIBNZLUA_3_2_0 
NZUDXCOMPILE OPTIONS: (--replbyval --nullcall --unfenced --mem 2m) 
CREATE FUNCTION 
[[email protected] examples]$ nzsql -d testdb -c "select isdate('2014-01-21 04:43:00','YYYY-MM-DD HH:MI:SS');" 
ISDATE 
-------- 
t 
(1 row) 

[[email protected] examples]$ nzsql -d testdb -c "select isdate('2014-01-21 44:43:00','YYYY-MM-DD HH:MI:SS');" 
ISDATE 
-------- 
f 
(1 row) 
+0

感謝您的回覆。在我的情況下,我沒有特權安裝。那麼,除此之外還有其他選擇嗎? – SMPH 2015-02-07 09:14:26

+0

除了SQL擴展工具包中可用的正則表達式函數(也包括在內)中,但也必須由管理員安裝之外,我不知道如何在Netezza中有效地使用UDF執行此操作,而UDF必須是安裝。抱歉! – ScottMcG 2015-02-07 17:47:30

2

正如@ScottMcG提到的,你可以使用SQL擴展工具包使用正則表達式。此示例將返回模式匹配的boolean驗證。

select sql_functions.admin.regexp_like('2014-01-21 04:43:00','\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$')