Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server logparser到_时间输出与sql时间数据类型不匹配_Sql Server_Sql Server Express_Logparser - Fatal编程技术网

Sql server logparser到_时间输出与sql时间数据类型不匹配

Sql server logparser到_时间输出与sql时间数据类型不匹配,sql-server,sql-server-express,logparser,Sql Server,Sql Server Express,Logparser,以下是来自logparser的查询: 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:%' O

以下是来自logparser的查询:

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
查询的输出为:

DATE           TIME
NULL           03:09:49
NULL           03:09:49
NULL           03:10:44
NULL           03:11:52
2015-02-06     03:12:40
NULL           03:13:37
NULL           03:18:22
NULL           03:21:18
NULL           03:21:32
NULL           03:24:19
NULL           03:26:02
当我希望此数据流入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 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子句项不兼容 “时间”(类型时间戳)

在SQLEXPRESS中选择的数据类型为

时间(0)

如果我将数据类型选择为:

“日期时间”

但这会在时间之前添加一个默认日期,这很麻烦。e、 g时间如下所示:

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" e1cx@D43F2STC  
3:18:22 (ptc_d) OUT: "PROE_Flex3C" u234566@D5712Sf8  
3:21:18 (ptc_d) OUT: "PROE_Flex3C" u234566@D5712Sf8  
3:21:32 (ptc_d) OUT: "PROE_Flex3C" U524863@D9NR972S  
3:24:19 (ptc_d) IN: "PROE_Flex3CG" e1cx@D43F2STC  
3:26:02 (ptc_d) OUT: "PROE_Flex3C" m0ax@2SD3TC3F  
3:26:46 (ptc_d) OUT: "PROE_Flex3C" 06u1015@03tjn-proe  
3:26:48 (ptc_d) OUT: "26" 06u1015@03tjn-proe  
3:26:48 (ptc_d) OUT: "10114" 06u1015@03tjn-proe  
4:34:39 (ptc_d) DENIED: "26" 74U1027@MZBOXSGH61108  (Licensed number of users already reached. (-4,342:10054 ""))

很遗憾,不支持,LogParser不支持时间类型。您可以尝试将日期和时间列作为单个日期时间一起发送,或者将时间列作为字符串发送,希望SQL server将其转换为时间…

谢谢Gabriele。我原以为时间会起作用。在纯时间戳前面添加日期字段确实很有挑战性。在这种情况下,日期以某种奇怪的格式出现,间隔6小时。但“只有当你向挑战低头时,挑战才会成为障碍。”!