none
Tipo date e tipo time RRS feed

  • Pergunta

  • Galera, é no SQL Server 2008 que lançaram o tipo date e o tipo time?

     

    Acabei de alterar uma tabela aqui no Sql Server 2005, com compatibilidade 2005. Adicionando um campo time e outro campo date, e funcionou normalmente.

     

    att.


    Aprendiz
    • Movido Gustavo Maia Aguiar segunda-feira, 4 de julho de 2011 13:24 (De:SQL Server - Desenvolvimento Geral)
    segunda-feira, 4 de julho de 2011 12:56

Respostas

  • Bom Dia Edivaldo,

    Esse é um dos mitos do "modo de compatibilidade". Muitos acham e juram de pé junto que quando uma base está em um determinado modo de compatibilidade irá se comportar exatamente da mesma forma que na versão daquele modo de compatibilidade.

    Se isso fosse mesmo verdade, a Microsoft não conseguiria vender as novas funcionalidades, pois, quase sempre migra-se sem a alteração do modo de compatibilidade (menos de 2005 para 2008). É plenamente possível espelhar bases de dados ou usar o CLR para bases que estejam na compatibilidade 2000 ou ainda criar índices com a cláusula WHERE e usar tipos de dados geográficos em bases que estejam na compatibilidade 2005 se em ambas as situações a versão suportar esses recursos.

    O modo de compatibilidade não é um inibidor ou autorizador de features (embora em algumas situações, o modo de compatibilidade bloqueie comandos). O modo de compatibilidade é apenas uma escolha de comportamento para que as aplicações sintam menos as alterações de um SQL Server mais recente.

    O REPLACE do 2008 não trunca os espaços vazios no início e no fim da STRING enquanto que no 2000 e no 2005 isso era verdade. Dependendo do modo de compatibilidade você verá um ou outro comportamento. Entretanto, se o seu SQL Server é 2008, você conseguirá usar os novos tipos de dados sem nenhum problema.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 4 de julho de 2011 13:24
  • Bom Dia,

    Os tipos DATE e TIME eram um promessa no 2005 para aumentar os tipos de dados em conformidade com a norma ANSI (além do que era um incompreensível não ter esses tipos de dados e ser obrigado a armazenar a data (ou) a hora sem necessidade). Ainda assim, a promessa só foi cumprida no SQL Server 2008 e não no 2005. Acredito que você tenha uma base em SQL Server 2008 com compatibilidade 2005, mas uma base 2005 de fato ou talvez esteja com alguma versão BETA do 2005 não ?

    Você poderia rodar o comando @@VERSION para verificarmos ?

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Edivaldo Junior segunda-feira, 4 de julho de 2011 13:20
    segunda-feira, 4 de julho de 2011 13:09

Todas as Respostas

  • Bom Dia,

    Os tipos DATE e TIME eram um promessa no 2005 para aumentar os tipos de dados em conformidade com a norma ANSI (além do que era um incompreensível não ter esses tipos de dados e ser obrigado a armazenar a data (ou) a hora sem necessidade). Ainda assim, a promessa só foi cumprida no SQL Server 2008 e não no 2005. Acredito que você tenha uma base em SQL Server 2008 com compatibilidade 2005, mas uma base 2005 de fato ou talvez esteja com alguma versão BETA do 2005 não ?

    Você poderia rodar o comando @@VERSION para verificarmos ?

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Edivaldo Junior segunda-feira, 4 de julho de 2011 13:20
    segunda-feira, 4 de julho de 2011 13:09
  • Isso, eu tenho o SQL Server 2008, e o banco tem compatibilidade 2005.

     

    Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64)   Apr 22 2011 19:23:43   Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) 

     

    Então nos lugares que o sql for 2005, não funcionará?? Achei que quando tinha compatibilidade, só funcionava as coisas da versão que está na compatibilidade.


    Aprendiz
    segunda-feira, 4 de julho de 2011 13:13
  • Realmente, acabei de ir na base de um cliente, que o servidor é 2005 e: Msg 2715, Level 16, State 7, Line 2
    Column, parameter, or variable #66: Cannot find data type TIME.
    =/
    Valeu Gustavo.

    Aprendiz
    segunda-feira, 4 de julho de 2011 13:20
  • Bom Dia Edivaldo,

    Esse é um dos mitos do "modo de compatibilidade". Muitos acham e juram de pé junto que quando uma base está em um determinado modo de compatibilidade irá se comportar exatamente da mesma forma que na versão daquele modo de compatibilidade.

    Se isso fosse mesmo verdade, a Microsoft não conseguiria vender as novas funcionalidades, pois, quase sempre migra-se sem a alteração do modo de compatibilidade (menos de 2005 para 2008). É plenamente possível espelhar bases de dados ou usar o CLR para bases que estejam na compatibilidade 2000 ou ainda criar índices com a cláusula WHERE e usar tipos de dados geográficos em bases que estejam na compatibilidade 2005 se em ambas as situações a versão suportar esses recursos.

    O modo de compatibilidade não é um inibidor ou autorizador de features (embora em algumas situações, o modo de compatibilidade bloqueie comandos). O modo de compatibilidade é apenas uma escolha de comportamento para que as aplicações sintam menos as alterações de um SQL Server mais recente.

    O REPLACE do 2008 não trunca os espaços vazios no início e no fim da STRING enquanto que no 2000 e no 2005 isso era verdade. Dependendo do modo de compatibilidade você verá um ou outro comportamento. Entretanto, se o seu SQL Server é 2008, você conseguirá usar os novos tipos de dados sem nenhum problema.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 4 de julho de 2011 13:24