【发布时间】:2017-04-06 15:19:34
【问题描述】:
我正在尝试从 psql 数据库中提取数据并使用 BizTalk 将它们插入到 SQL Server 数据库中。 psql 中有一个名为createddate 的列,类型为TimeStamp,时区类似于6/30/2016 12:00:00 AM
我想将该数据插入到名为DateCreated 的类型为datetimeoffset 的SQL Server 列中。由于我使用的是 BizTalk,所有数据都作为 sting 处理,所以我使用以下脚本,如
public string ConvertDateCreated(string dateCreated)
{
System.Globalization.CultureInfo provider = System.Globalization.CultureInfo.InvariantCulture;
return DateTime.ParseExact(dateCreated, "MMddyyyy", provider).ToString("yyyyMMdd");
}
但是它抛出了一个错误:
字符串未被识别为有效的日期时间。
异常类型:FormatException
来源:mscorlib
目标站点:System.DateTime ParseExact(System.String, System.String, System.Globalization.DateTimeFormatInfo, System.Globalization.DateTimeStyles)以下是标识异常发生位置的堆栈跟踪
在 System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
在 System.Xml.Xsl.CompiledQuery.Script1.ConvertDateCreated(String dateCreated)
在(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}运行时,XPathNavigator {urn:schemas-microsoft-com:xslt-debug}当前)
在(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}运行时,XPathNavigator {urn:schemas-microsoft-com:xslt-debug}当前)
在根目录(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
在执行(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
在 System.Xml.Xsl.XmlILCommand.Execute(对象 defaultDocument,XmlResolver 数据源,XsltArgumentList argumentList,XmlSequenceWriter 结果)
在 System.Xml.Xsl.XmlILCommand.Execute(对象 defaultDocument、XmlResolver 数据源、XsltArgumentList 参数列表、XmlWriter 编写器)
在 System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable 输入,XsltArgumentList 参数,XmlWriter 结果,XmlResolver documentResolver)
【问题讨论】:
-
你有从原始数据库返回的日期字符串的例子吗?
-
就像
6/30/2016 12:00:00 AM -
那么你的格式应该是
dd/MM/yyyy HH:mm:ss -
@PaulF 在原始数据库中就像
6/30/2016 12:00:00 AM -
您可能需要修改 ParseExact 格式以匹配 - 因为这与“MMddyyyy”不同。
标签: c# sql biztalk psql biztalk-2013