SQL Server Msg 241, Niveau 16, État 1, la Conversion a échoué lors de la conversion de la date et/ou le temps de chaîne de caractères

J'obtiens cette erreur lors de l'exécution d'un stored procedure que j'ai créé

Msg 241, Niveau 16, État 1, Procédure UDP_INITIAL_CUSTOMER_DIM_POPULATION, à la Ligne 28

Échec de la Conversion lors de la conversion de la date et/ou le temps de chaîne de caractères.

Le code de la procédure est la suivante:

CREATE PROCEDURE UDP_INITIAL_CUSTOMER_DIM_POPULATION
AS
BEGIN
    SET NOCOUNT ON

    EXEC UDP_REMOVE_NULLS_FROM_CUSTOMER_STG

    INSERT INTO dbo.customer_dim(customer_no, first_name, middle_name, last_name,
                                 street_number, street_name, po_address, zip_code, city,
                                 region, country)
        SELECT DISTINCT 
            CAST(customer_no AS VARCHAR),
            first_name,
            middle_name,
            last_name,
            street_number,
            street_name,
            po_address,
            zip_code,
            city,
            region,
            country
        FROM 
            dbo.customer_stg

    PRINT 'Initial customer data in place!'
    SET NOCOUNT OFF
END

et le code pour créer le customer_dim table est la suivante:

CREATE PROCEDURE dbo.UDP_CREATE_CUSTOMER_DIM
AS
BEGIN
    IF OBJECT_ID('customer_dim', 'U') IS NOT NULL
    BEGIN
        DROP TABLE customer_dim
    END

    CREATE TABLE [dbo].[customer_dim]
    (
        [customer_sk] INT IDENTITY (1,1) PRIMARY KEY,
        [customer_no] [varchar](50) NULL,
        [first_name] [varchar](50) NULL,
        [middle_name] [varchar](50) NULL,
        [last_name] [varchar](50) NULL,
        [customer_name] [varchar](50) NULL,
        [street_number] [varchar](50) NULL,
        [street_name] [varchar](50) NULL,
        [customer_address] [varchar](100) NULL,
        [po_address] [varchar](50) NULL,
        [zip_code] [varchar](50) NULL,
        [city] [varchar](50) NULL,
        [region] [varchar](50) NULL,
        [country] [varchar](50) NULL,
        [effective_date] DATE NULL DEFAULT GETDATE(),
        [expiry_date] DATE NULL DEFAULT '999-12-31'
    ) ON [PRIMARY]
    END

J'ai essayé de chercher une solution, mais parce que je suis pas d'essayer de faire quoi que ce soit sur la date ou l'heure, je ne trouve rien à ce qui fait sens pour moi.

  • Je pense que c'est la valeur par défaut pour expiry_date.
InformationsquelleAutor Luke L | 2016-04-27