none
Default Language istanza Sql Server 2008 RRS feed

  • Domanda

  • Ciao a tutti,

    ho un dubbio in merito ad alcune banali query che eseguo.

       

    non funzionante 

    SELECT *
       FROM dbo.Database1
       WHERE (DataInizio <= '31/12/2014') 

    errore: conversion failed when converting date and/or time from character string

    funzionante

    SELECT *
       FROM dbo.Database1
       WHERE (DataInizio <= convert(datetime,'31/12/2014',105) )


    Vorrei sapere se c'è un modo per impostare lato sql il formato della data di default, in modo che sia italiano...e quindi non ci sia la necessità di utilizzare il convert.

    Le impostazioni di Windows sono corrette (formato DD/MM/YYYY)...

    Idee?

    Grazie a tutti.

    lunedì 4 aprile 2016 14:46

Risposte

  • Ciao,

    per evitare il convert io utilizzerei il formato YYYYMMDD

       SELECT *
       FROM dbo.Database1
       WHERE (DataInizio <= '20141231') 

    se proprio vuoi usare il formato DD/MM/YYYY, lato T-SQL puoi impostare la lingua Italian

       SET LANGUAGE Italian

       SELECT *
       FROM dbo.Database1
       WHERE (DataInizio <= '31/12/2014') 

    meglio ancora se lo imposti nella stringa di connessione a Sql server "LANGUAGE = Italian" così non devi specificarlo nello script.

    Un'altra strada è quella di impostare la lingua predefinita del database ma in ogni caso l'impostazione usata nella stringa di connessione se presente ha la precedenza.

    Ciao
    Giorgio Rancati


    lunedì 4 aprile 2016 16:53
    Moderatore