0
以下是从LOGPARSER该查询:LOGPARSER TO_TIME输出不匹配的SQL时间数据类型
查询logparser -i:Textline "SELECT TO_DATE(TO_TIMESTAMP(TRIM(EXTRACT_SUFFIX(text,0,'TIMESTAMP')),'M/d/yyyy'))AS DATE, TO_TIME(TO_TIMESTAMP(TRIM(EXTRACT_TOKEN(text,0,'(')),'H:mm:ss')) as TIME from 'C:\xxxx.log' where text like '%OUT:%' OR text like '%IN:%' OR text like '%TIMESTAMP%' OR text like '%DENIED%'" -o:datagrid
输出是:
时,我想这个数据流向SQL表我出现以下错误:
QUERY:
logparser -i:Textline "select TO_DATE(TO_TIMESTAMP(TRIM(EXTRACT_SUFFIX(text,0,'TIMESTAMP')),'M/d/yyyy'))AS DATE, TO_TIME(TO_TIMESTAMP(TRIM(EXTRACT_TOKEN(text,0,'(')),'H:mm:ss')) as TIME INTO Ptclog from 'C:\ptclmgrd.log' where text like '%OUT:%' OR text like '%IN:%' OR text like '%TIMESTAMP%' OR text like '%DENIED%'" -o:SQL -server:KANNA\SQLEXPRESS -database:Flex -driver:"SQL Server Native Client 11.0" -username:sa -password:XXXXXX
错误:
任务中止。 SQL表列“时间”的数据类型与SELECT子句项 “TIME”(类型时间戳)兼容
在SQLEXPRESS所选择的数据类型是
time(0).
,如果我的数据流给列选择数据类型为:
"datetime"
但是这会在时间前添加一个默认日期,这是令人讨厌的。例如时间显示为:
DATE TIME
2015-02-06 2015-01-01 03:12:40.000
NULL 2015-01-01 07:55:49.000
NULL 2015-01-01 06:46:50.000
NULL 2015-01-01 06:55:40.000
NULL 2015-01-01 01:57:25.000
NULL 2015-01-01 02:36:41.000
有没有办法在sql express 2014 DB中以hh:mm:ss格式表示时间?
以下是在日志文件中的样本条目被查询:
3:12:40 (lmgrd) TIMESTAMP 2/6/2015
3:13:37 (ptc_d) OUT: "PROE_Flex3CG" [email protected]
3:18:22 (ptc_d) OUT: "PROE_Flex3C" [email protected]
3:21:18 (ptc_d) OUT: "PROE_Flex3C" [email protected]
3:21:32 (ptc_d) OUT: "PROE_Flex3C" [email protected]
3:24:19 (ptc_d) IN: "PROE_Flex3CG" e1cx[email protected]
3:26:02 (ptc_d) OUT: "PROE_Flex3C" [email protected]
3:26:46 (ptc_d) OUT: "PROE_Flex3C" [email protected]
3:26:48 (ptc_d) OUT: "26" [email protected]
3:26:48 (ptc_d) OUT: "10114" [email protected]
4:34:39 (ptc_d) DENIED: "26" [email protected] (Licensed number of users already reached. (-4,342:10054 ""))
感谢Gabriele。我曾经想过To_TIME会做到这一点。在纯时间戳前添加日期字段非常具有挑战性。在这种情况下,日期也有一些奇怪的格式,间隔时间为6小时。但是,“当你向它低头时,挑战只会成为障碍。” – 2015-03-22 11:46:15