span8号
第4排
很好的一天,
我有一个要写入数据库的警告列表。我正在使用mssqql_jdbc_nonspatial writer写入我们的SQL Server数据库。表属性之一是warningtimestamp。(我在编写器中将类型设置为datetime。)它是ISO datetime格式。当我想将记录写入数据库时,我总是得到一个错误告诉我“MS SQL Server(JDBC)编写器:错误编写特性。错误:“warningtimestamp”属性不包含有效的时间戳“即使认为warningtimestamp是“2018-10-08t00:00:00”。
如果我使用datetimeconverter将iso datetime转换为fme datetime,导入正在工作。为什么?
请帮忙。
我的下一个问题是:我有ISO日期时间格式的值(2018-11-26t 00:00:00),由于它不起作用,我转换为FME日期时间(201811260000),然后导入到SQL数据库。数据库中的值为2018-11-26 12:00:00.000。
为什么时间是“2018-11-26 12:00:00.000”,而不是“2018-11-26 00:00:00.000”,因为它是午夜而不是中午。(见ISO日期时间)?
你怎么读回来的?这就是它在数据库中用SQL查询显示的,或者,当你用FME读回它时,FME数据检查员会显示什么?我想知道这两种技术是否都有相同的结果。有时,你检查结果的方式会改变结果的显示(当然,有时问题在于,问题在于,在这种情况下,可以在FME中将时间专门设置为201811261300000,以查看它产生了什么)。
对,它在SQL Server中显示2018-11-26 12:00:00.000。但问题是时间是中午(12:00),而不是午夜(00:00)。我还没找到解决办法,为什么fme datetime转换器将它设置为中午,即使为iso datetime指定了午夜。
写入前的值如下(使用inspector):
1.转换为ISO格式的步骤:2018-12-03T00:00:00,然后
2.步骤使用datetimeconverter将iso转换为fme datetine,因为iso不工作:20181203000000
您好!@凯特
我已经重现了这个问题。如果将午夜值写入日期时间类型列,值变为当天中午。同时,日期时间2和日期时间偏移量列存储正确的(午夜)值。
对于这个问题给您带来的不便,我深表歉意。我们现在有bug了发动机-57690在我们的系统中存档,并将解决问题。
感谢您提醒我们。
据我所知,大多数(可能全部)FME编写者只接受日期/时间值标准FME日期/时间格式当其目标数据类型设置为写入程序功能类型中的日期/时间类型时。然后,在将其写入目标数据集时,编写器会相应地隐式转换其格式。
您不需要知道每个特定数据格式的日期/时间格式,无论目标数据格式是什么,始终可以使用标准的FME日期/时间格式。我认为这是一个常见的设计概念的FME作家。
我的下一个问题是:我有ISO日期时间格式的值(2018-11-26t 00:00:00),由于它不起作用,我转换为FME日期时间(201811260000),然后导入到SQL数据库。数据库中的值为2018-11-26 12:00:00.000。
为什么时间是“2018-11-26 12:00:00.000”,而不是“2018-11-26 00:00:00.000”,因为它是午夜而不是中午。(见ISO日期时间)?
您好!@凯特
请在您的SQL Server编写器之前检查该值,以确认它是二十兆一千八百一十一亿二千六百万是吗?如何检查SQL Server数据库以查看20181126 12:00:00.000是吗?
我们确实需要调查这个问题。
我读到的是,日期时间的SQL Server格式是YYYY-MM-DD hh:m m:ss
我想是“T”字造成了一个问题。尝试不使用(使用stringreplacer将t替换为空格字符)并查看是否有效。
对于FME日期时间,我猜FME知道该值应该是一个日期时间(因为您在编写器中设置了列类型),所以会自动尝试转换提供的值。它猜测输入日期是FME格式,因为这是默认的。它不会自动从ISO转换提供的值,因为它不知道格式是什么。
随着时间的推移,FME变得越来越聪明,它可能能够识别属性是日期,它的格式是什么,这样的怪事不会发生。但这是一个值得期待的未来发展…
?2019安全亚搏在线软件公司|法律