在MSReport中将日期转换为uk格式?

时间:2017-06-16 15:30:16

标签: sql date stored-procedures

我有以下存储过程,但我遇到的问题是C1提交日期,C2提交日期,C3提交日期,C4提交日期显示为MM / DD / YYYY和时间显示。我只是想让它显示英国日期格式DD / MM / YY

我想我必须将此转换为日期?请建议并查看我的SQL查询。

USE [Drop2_MSCRM]
GO
/****** Object:  StoredProcedure [dbo].[spMIClientServicesReport]    Script Date: 16/06/2017 16:17:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[spMIClientServicesReport]  
    @FromDate date,
    @ToDate date
AS

BEGIN

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

SELECT CL_Reg_Number,
       Name,
       Supplier_Status,
       Achieved_Product_Level,
       Target_Product_Level,
       Primary_Contact,
       Email,
       Telephone,
       Line1,
       Line2,
       Line3,
       Line4,
       City,
       County,
       Postcode,
       SignUp_Date,
       dbo.fn_GetSectionStatus(AccountId, N'C1') AS C1_Status,
       dbo.fn_GetSectionDates(AccountId, N'C1') AS C1_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'C2')   AS C2_Status,
       dbo.fn_GetSectionDates(AccountId, N'C2')  AS C2_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'C3')   AS C3_Status,
       dbo.fn_GetSectionDates(AccountId, N'C3')   AS C3_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'C4')  AS C4_Status,
       dbo.fn_GetSectionDates(AccountId, N'C4')  AS C4_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'O1')   AS O1_Status,
       dbo.fn_GetSectionDates(AccountId, N'O1')  AS O1_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'O2')   AS O2_Status,
       dbo.fn_GetSectionDates(AccountId, N'O2')   AS O2_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'O3')   AS O3_Status,
       dbo.fn_GetSectionDates(AccountId, N'O3') AS O3_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'O4') AS O4_Status,
       dbo.fn_GetSectionDates(AccountId, N'O4') AS O4_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'L3')  AS Supplementary_Questions_Status,
       dbo.fn_GetSectionDates(AccountId, N'L3') AS Supplementary_Questions_Submission_Date,
       dbo.fn_GetSectionStatus(AccountId, N'L4') AS OAR_Status,
       dbo.fn_GetSectionDates(AccountId, N'L4') AS OAR_Submission_Date

       FROM(

       SELECT acc.AccountId AS AccountID,
       acc.mm_registrationnumber AS CL_Reg_Number,
       acc.Name,
       mm_supplierstatusname AS Supplier_Status,
       mm_catalogitemtoorganisationlinker2.mm_achievedcatalogproductName AS Achieved_Product_Level,
       mm_catalogitemtoorganisationlinker2.mm_catalogitemName AS Target_Product_Level,
       acc.PrimaryContactIdName AS Primary_Contact,
       acc.EMailAddress1 AS Email,
       acc.Telephone1 AS Telephone,
       adr.mm_line1 AS Line1,
       adr.mm_line2 AS Line2,
       adr.mm_line3 AS Line3,
       adr.mm_line4 AS Line4,
       adr.mm_city AS City,
       adr.mm_county AS County,
       adr.mm_postcode AS Postcode,
       CONVERT(VARCHAR(10), acc.mm_signupdate, 103)  AS SignUp_Date

        FROM FilteredAccount AS acc
        OUTER APPLY 
        (

         SELECT  TOP 1 mm_achievedcatalogproductName, mm_catalogitemName
         FROM    mm_catalogitemtoorganisationlinker
         WHERE   mm_catalogitemtoorganisationlinker.[mm_organisation] = acc.accountid
         ORDER BY CASE when mm_achievedcatalogproductName is null THEN 1 ELSE 0 END, mm_achievedcatalogproductName DESC
         )

         mm_catalogitemtoorganisationlinker2 LEFT JOIN mm_address AS adr ON acc.mm_address = adr.mm_addressId
         WHERE (acc.mm_registrationnumber IS NOT NULL) AND Cast (Acc.mm_signupdate as DATE) BETWEEN @FromDate AND @ToDate) CSR ORDER BY CL_Reg_Number

         END

1 个答案:

答案 0 :(得分:0)

您可以使用FORMAT函数包装日期字段,如下所示:

FORMAT(dbo.fn_GetSectionDates(AccountId, N'C1'), 'd', 'en-gb') AS C1_Submission_Date,

查看官方Msdn文档中的第一个示例以获取更多信息:https://msdn.microsoft.com/fr-fr/library/hh213505.aspx