Ir para conteúdo
Fórum Script Brasil
  • 0

[RESOLVIDO] Campo Datetime (Iniciante)


J4P0N315

Pergunta

Bom dia, pessoal.

Estou estudando SQL com o SGBD SQL Server 2005 Express + SS Management Studio.

O meu problema é o seguinte: quero criar uma tabela contendo um campo para inserir a data de entrada de determinado aluno. Então eu encontrei a seguinte solução:

create table alunos (

id_aluno int identity(1,1) not null,

nome_aluno varchar(100) not null,

data_entrada datetime default '0000-00-00 00:00:00' not null,

data_saida datetime default '0000-00-00 00:00:00'

)

O problema é que com esta solução, deve ser inserido o horário, contendo os minutos, segundos e etc. E não quero isso. Quero inserir apenas os dias. Eu tenho um livro dizendo que existe o campo do tipo date, mas este não existe no MS SQL.

A melhor maneira que eu encontrei é, na hora do select, exibir os dias, meses e anos, mas cada um em um campo. Não é bem isso que eu queria. A solução seria é a seguinte:

select nome_aluno as "Nome do aluno" ,

day(data_entrada) as "Dia de entrada",

month(data_entrada) as "Mês de entrada",

year(data_entrada) as "Ano de entrada"

from alunos

Alguém conhece alguma solução para este meu problema? Até agora não encontrei nada. Se não for possível na inserção, pode ser apenas na exibição. Se der nos dois, ótimo! :)

Desde já, agradeço a atenção.

Editado por J4P0N315
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Boa Noite.

Não existe nenhuma maneira no SQL SERVER 2005 de inserir os dados sem que grave a hora, você até pode mandar inserir um valor apenas com a data mas devido ao tipo do campo ser datetime ele sempre vai gravar 0 nos valores da hora, eu nunca me preocupei com isso porque os componentes de data que utilizo no delphi tem como default ignorar as informações de hora.

Se o que você precisa é apenas mostrar a data sem o time acho que este comando deve te ajudar, é quase aquilo que você já havia feito, só falto somar todos em um campo só.

select CONVERT(varchar(2), Day(Data_Entrada)) + '/'+

CONVERT(varchar(2), MONTH(Data_Entrada))+ '/' +

CONVERT(varchar(4), Year(Data_Entrada))

from alunos

Ah e novidades para o SQL SERVER 2008 existe o tipo datetime e o tipo date.

Espero ter ajudado

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde, amigo...

Me desculpe pela demora da resposta, mas nesse final de semana não tive tempo de entrar aqui no ScriptBrasil! :(

Só estou entrando agora, no meu horário de almoço! :)

Eu vou testar esta solução na minha casa, mas pela estrutura da query, já vi que vai dar certo.

Muito obrigado pela resposta.

Fico feliz que a MS tenha criado o campo do tipo time no 2008. Nem todas as vezes precisamos armazenar a hora, não é verdade???

:D

Agradeço mais uma vez!

Abraços!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá...

Eu acabei de testar o comando e venho dizer que deu certo! :)

Era bem isso que eu queria, mesmo!

Muito obrigado pela ajuda!

Só para complementar, se eu quiser armazenar o horário sem armazenar a data, eu uso um campo do tipo time, correto?

Eu testei aqui e acho que é isso, mesmo!

Criar uma query desse tamanho só por causa de uma coluna é chato. Bom saber que criaram o campo do tipo "date" no SQL 2008! :)

Muito obrigado! :D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...