如何从xml文档转换sql存储过程中的日期格式101

时间:2012-08-14 05:44:20

标签: sql-server-2008-r2

我写了以下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

1 个答案:

答案 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