VARIAVEL DATA É DATE E STRING?
Galera, estive pesquisando algumas soluções na internet, e achei muitas dicas e ainda não tive tempo de testar todas, mas achei um exemplo que me chamou a atenção por ser um tanto curioso! Pelo titulo do topico já devem saber do que se trata! No link do Macoratti ele declara a variavel String, sendo no banco ele é Date! Isso seria correto politicamente falando? Pergunto pois tanto na variavel quanto no SQL eu declaro sempre ambos como Date
Exemplo:
Dim Data as Date [ô]Isso no vb
CREATE TABLE [dbo].[t_Data](
[cod] [int] IDENTITY (1,1) NOT NULL,
[Data] [date] NOT NULL
) ON [PRIMARY] /Isso no SQL
Queria saber a opinião de amigos!
Exemplo:
Dim Data as Date [ô]Isso no vb
CREATE TABLE [dbo].[t_Data](
[cod] [int] IDENTITY (1,1) NOT NULL,
[Data] [date] NOT NULL
) ON [PRIMARY] /Isso no SQL
Queria saber a opinião de amigos!
Certa vez um de nossos alunos declarou um campo campo texto para colocar datas,
o campo aceitava e pesquisava sem problemas, a única coisa errada era na hora de
ordenar, pois era ordenado como texto e não como data, então por exemplo a data
03/10/2015 vinha antes 04/11/2015 pois ele só interpretava os primeiros campos....
o campo aceitava e pesquisava sem problemas, a única coisa errada era na hora de
ordenar, pois era ordenado como texto e não como data, então por exemplo a data
03/10/2015 vinha antes 04/11/2015 pois ele só interpretava os primeiros campos....
Eu sempre costumo dizer, dai a Cezar o que é de Cezar...
em outras palavras devemos declarar tudo como manda o
figurino....
em outras palavras devemos declarar tudo como manda o
figurino....
Citação:Certa vez um de nossos alunos declarou um campo campo texto para colocar datas,
o campo aceitava e pesquisava sem problemas, a única coisa errada era na hora de
ordenar, pois era ordenado como texto e não como data, então por exemplo a data
03/10/2015 vinha antes 04/11/2015 pois ele só interpretava os primeiros campos.
Não só na ordenação, as pesquisas também são falsas, princialmente quando envolve anos diferentes.
Citação:No link do Macoratti ele declara a variavel String
Tem certeza disso ?
Bem eu uso o formato string no banco e converto esta em formato date quando preciso fazer quaisquer cálculos com as datas ou horas. Mas cada caso é um caso.
Citação:Bem eu uso o formato string no banco e converto esta em formato date quando preciso fazer quaisquer cálculos com as datas ou horas. Mas cada caso é um caso.
Eu declaro data como date, pois o sistema que estou desenvolvendo pesquisa por periodo (DataInicio/DataFinal)
Citação:Tem certeza disso ?
NILSONTRES, eu tirei um print do proprio link que deixei disponivel na postagem, talvez eu esteja fazendo confusão mas ele declarou duas variaveis de data em String! Me ajuda a entender!
mas mesmo sendo declarado string, o conteúdo é passado em formato datetime, veja dtpinicio.value.string
eu declaro tudo conforme o q deve conter, mas no inicio do tópico pensei q dentro do BD por acaso estaria string, pq ai as pesquisas vão pro brejo ou tem q fazer 1001 manobras antes....
poderia ser string e armazenar um inteiro
dim valor as string
valor=cint(text1.text)
eu declaro tudo conforme o q deve conter, mas no inicio do tópico pensei q dentro do BD por acaso estaria string, pq ai as pesquisas vão pro brejo ou tem q fazer 1001 manobras antes....
poderia ser string e armazenar um inteiro
dim valor as string
valor=cint(text1.text)
Entendi, a variavel no VB.NET ou C# ou Java pode ser String, mas no banco datetime, então para variavel ele é convertido para poder fazer a pesquisa. Seria mais ou menos isso?
Acesse e traduz para tu ver.
https://msdn.microsoft.com/pt-br/library/system.data.sqlclient.sqlparametercollection.addwithvalue(v=vs.110).aspx
https://msdn.microsoft.com/pt-br/library/system.data.sqlclient.sqlparametercollection.addwithvalue(v=vs.110).aspx
Você nunca deveria usar string para guardar dados que não são simplesmente textos, você deveria sempre usar o tipo apropriado, então uma data deve sempre ser guardada em um tipo DateTime, você só deve converter ela para texto quando necessário.
No caso de passar como parâmetros para uma SQL é totalmente desnecessário converter para string, se você passar como DateTime você não precisa se preocupar com o formato da data pois ela sempre vai correta, o único caso que vi dela indo de forma incorreta era por culpa do provider que não tratava o formato corretamente, mas hoje em dia isso não deve acontecer.
Acho que só mesmo no caso de ter de exibir os valores em um controle que só usa strings é que realmente precisa fazer a conversão e usar o valor como texto.
No caso de passar como parâmetros para uma SQL é totalmente desnecessário converter para string, se você passar como DateTime você não precisa se preocupar com o formato da data pois ela sempre vai correta, o único caso que vi dela indo de forma incorreta era por culpa do provider que não tratava o formato corretamente, mas hoje em dia isso não deve acontecer.
Acho que só mesmo no caso de ter de exibir os valores em um controle que só usa strings é que realmente precisa fazer a conversão e usar o valor como texto.
Tópico encerrado , respostas não são mais permitidas