我写了以下procedure
...将如何转换date 101 format
ALTER PROCEDURE [dbo].[PenDataIns]
--[Begin]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(
@xmlData ntext = null
) As
--[Begin]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Declare @DocHandle int --Doc handle for P1
DECLARE @Data_ins_error int
BEGIN TRANSACTION
--[Load data into respective XML document handle before processing]~~~~~~~~~~~~~~
EXECUTE sp_xml_preparedocument @DocHandle OUTPUT, @xmlData
--[Ecsstru]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* Begin data transfer */
BEGIN
INSERT INTO AG_Data([PPO],
[NUM],[TYPE],[DOB],[DOA],[DOR])
SELECT * FROM OPENXML (@DocHandle, '/root/NewDataSet/Table',8)
WITH
(
[PPO] varchar(8) './PPO',
[NUM] numeric(1,0) './NUM',
[TYPE] varchar(3) './TYPE',
[DOB] date './DOB',
[DOA] date './DOA',
[DOR] date './DOR')
end
答案 0 :(得分:0)
您的代码很好,无需修复。您的XML文件中有yyyy-mm-dd
日期格式,即exactly what it should be,这是SQL Server正确解释XML文件中日期值所需的格式。
SQL Server中的日期未以特定格式存储。如何向最终用户呈现日期最好在表示层完成,您可以根据该用户的语言环境设置进行不同的演示。
如果您在查询日期值时确实需要特定的日期格式,则必须使用convert
将值转换为字符串。例如select convert(char(10), DateColumn, 101) as DateColumn