0

私は次のように書きました...ここで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
4

1 に答える 1

0

あなたのコードは問題なく、修正する必要はありません。XML ファイルにyyyy-mm-dd日付形式があり、それはまさにそれであるべきものであり、SQL Server が XML ファイルの日付値を正しく解釈するために必要なものです。

SQL Server の日付は特定の形式で保存されません。エンド ユーザーに日付を提示する方法は、そのユーザーのロケール設定に応じてさまざまなプレゼンテーションを行うことができるプレゼンテーション層で行うのが最適です。

日付値をクエリするときに特定の日付形式が本当に必要な場合は、 を使用して値を文字列に変換する必要がありますconvert。例えばselect convert(char(10), DateColumn, 101) as DateColumn

于 2012-08-14T07:29:35.590 に答える