Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Raphael Zago

Comparar date SQL com DateTime.Now

Recommended Posts

Bom dia,

 

Estou tentando comparar 2 datas, uma delas esta na tabela, e a outra é uma DateTime.Now, que declarei no meu codigo.

 

alguem pode me sugerir algo ?

 

obrigado!!

 

 public ActionResult DevolveFicha(int? id)
        {
            GetBasicData();
        //    var data = (from x in db.EPI_REQ_PENDENTES where x.id_REQ == id select x.id_FICHA);
            var idf = (from x in db.EPI_REQ_PENDENTES where x.id_REQ == id select x.id_FICHA).FirstOrDefault();
            if (idf == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            FICHA_MESTRE fICHA_MESTRE = db.FICHA_MESTRE.Find(idf);
            if (fICHA_MESTRE == null)
            {
                return HttpNotFound();
            }

            DateTime hoje = DateTime.Now;
           

          // DateTime.DATA = DateTime.Parse(EPI_REQ_PENDENTES.)
           //DateTime emiss = DateTime.Parse(fICHA_MESTRE.dat_emissao.Value.ToString());



            return View(fICHA_MESTRE);
        }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
36 minutos atrás, itlpps disse:

Se o campo da sua Model for DateTime, e o select trouxer ele carregado, é só comparar...

 

o Campo é DateTime sim! 

 

Eu tento comparar o campo com a minha variavel hoje, mas o if nao aceita...

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, itlpps disse:

Mostra como está fazendo o if, o código que postou está incompleto.

Mostra o erro também.

           

 

            EPI_REQ_PENDENTES ePI_REQ_PENDENTES = db.EPI_REQ_PENDENTES.Find(data);

            DateTime hoje = DateTime.Now;

            if (hoje <> ePI_REQ_PENDENTES) //aqui me retorna erro no operador
            {

            }

 

 

Ja tentei usar DateTime.Compare(campo1, campo2) mas tambem da erro...

 

Obrigado pela ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em C# diferente não é assim.. Isso ai é no SQL;

 

Tenta assim:

if (hoje != ePI_REQ_PENDENTES) 
{
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 minutos atrás, itlpps disse:

Em C# diferente não é assim.. Isso ai é no SQL;

 

Tenta assim:


if (hoje != ePI_REQ_PENDENTES) 
{
}

 

 

estou tentando por esse caminho :

 EPI_REQ_PENDENTES ePI_REQ_PENDENTES = db.EPI_REQ_PENDENTES.Find(id);
            DateTime hoje = DateTime.Now;
            DateTime emiss = DateTime.Parse(ePI_REQ_PENDENTES.DAT_MOVTO.ToString());
            if (hoje != emiss)
            {
                ePI_REQ_PENDENTES.dev_justificativa = "Devolvido"; 
                db.Entry(ePI_REQ_PENDENTES).State = EntityState.Modified;
                db.SaveChanges();
            }

 

o if nao aceita comparação por datas, pelomenos nao consegui...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, aparentemente está tudo certo.

Você está comparando dois objetos do mesmo tipo...

Coloca um break point, vai debugando pra ver o que tem de errado;

Compartilhar este post


Link para o post
Compartilhar em outros sites
48 minutos atrás, itlpps disse:

Cara, aparentemente está tudo certo.

Você está comparando dois objetos do mesmo tipo...

Coloca um break point, vai debugando pra ver o que tem de errado;

 Consegui pelo caminho que postei acima Itlpps!

 

resumindo: nao posso comparar 2 campos diretamente no if, precisa "parsear" a data antes... 

 

Obrigado pela ajuda e atenção!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você estava comparando errado

 

No if você estava comparando o objeto(ePI_REQ_PENDENTES) com a data(hoje) 

 

Você tinha que comparar data dentro do objeto(ePI_REQ_PENDENTES.DAT_MOVTO) com a data(hoje), se comparar desta forma não precisa fazer o parse

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por mr22robot
      Ola caros amigos. 
      Estou com uma dúvida aqui que embora nao tenho achado ainda uma resposta, acredito que haja.
      Estou estudando a tão sonhada linguagem de programação asp.net core mvc. Linguagem essa que demorei 5 anos pra iniciar os estudos rsrs.
      Mas estou agarrado em uma situação. 
      Estou usando como base de dados nos meus estudos um banco Oracle. Que já tem algumas informações nele. Utilizei o SCAFFOLD para criar as classes e o contexto baseado no banco e tabelas existentes. 
      Porem agora na fase das consultas, estou perdido em como utilizar o IN que eu utilizo no oracle; no LINQ.
      Ex: 
      SELECT CODPROD,DESCRICAO FROM PRODUTO WHERE CODPROD IN(1,2,3,4,5,6) Como eu utilizo esse filtro com uma restrição de códigos de produtos? no caso o where codprod in(1,2,3,4,5,6) ?.
      Desde já obrigado pela ajuda.
    • Por unset
      Olá, estou com uma pequena dúvida 
       
      Como transformar a data que recebemos com a função date("Y-m-d H:i") em uma string 2021-04-22T00:00 exatamente nesse formato ?
    • Por dudepaiva
      Boa tarde!
      Estou buscando os dados em uma planilha e adicionando em uma lista. Antes de adicionar em uma lista, utilizo o GROUPBY para agrupar a informação desejada, até aqui tudo bem, porém quando tento lançar essa informação num COMBOBOX, ocorre erro de parametro.
      A primeira linha em negrito, é onde busco e agrupo as informações. A segunda é onde ocorre o erro.
       
      Segue código:
       
      Quero trazer os dois campos abaixo.
       
      public class ProdutoDTO
          {
              private string codigo;
              private string nomeTributario;
              private string linhaReduzida;
              private string linha;
              private string marcaReduzida;
              private string marca;
              private string gramatura;
              public ProdutoDTO()
              {
              }
              public ProdutoDTO(string codigo, string nomeTributario, string linhaReduzida, string linha, string marcaReduzida, string marca, string gramatura)
              {
                  this.Codigo = codigo;
                  this.nomeTributario = nomeTributario;
                  this.linhaReduzida = linhaReduzida;
                  this.linha = linha;
                  this.marcaReduzida = marcaReduzida;
                  this.marca = marca;
                  this.gramatura = gramatura;
              }
              public string Codigo { get => codigo; set => codigo = value; }
              public string NomeTributario { get => nomeTributario; set => nomeTributario = value; }
              public string LinhaReduzida { get => linhaReduzida; set => linhaReduzida = value; }
              public string Linha { get => linha; set => linha = value; }
              public string MarcaReduzida { get => marcaReduzida; set => marcaReduzida = value; }
              public string Marca { get => marca; set => marca = value; }
              public string Gramatura { get => gramatura; set => gramatura = value; }
          }
       
      A primeira linha em negrito, é onde busco e agrupo as informações. A segunda é onde ocorre o erro.
       
      private void AbrirArquivoExcel()
              {
                  //Configura OpenFileDialog.
                  OpenFileDialog openFD = new OpenFileDialog();
                  openFD.Title = "Localizar arquivo";
                  openFD.InitialDirectory = @"C:\Documentos\Planilhas";
                  openFD.Filter = "Arquivo Excel (*.xlsx) | *.xlsx";
                  openFD.CheckFileExists = true;
                  openFD.CheckPathExists = true;
                  openFD.ShowReadOnly = true;
                  openFD.RestoreDirectory = true;
                  openFD.ReadOnlyChecked = true;
                  if (openFD.ShowDialog() == DialogResult.OK)
                  {
                      try
                      {
                          txtOpenFD.Text = openFD.FileName;
                          var produtos = produtoBLL.Buscar(openFD.FileName, "Dados").GroupBy(x => x.Linha).ToList();
                          cbLinha.DataSource = produtos;
                          cbLinha.ValueMember = "Codigo";
                          cbLinha.DisplayMember = "Linha";
                          cbLinha.SelectedIndex = -1;
                          cbLinha.Text = "Selecione";
                          //CarregarComboBox(cbLinha, produtos, "Linha", "LinhaReduzida");
                      }
                      catch (Exception)
                      {
                          throw;
                      }
                  }
              }
       
      Desde já agradeço a ajuda! Já quebrei a cabeça!

    • Por unset
      Olá, estou com um probleminha aqui se alguém puder ajudar,
       
      Eu tenho a data em uma coluna no formato date 2020-12-01 e a hora em outra coluna no formato time 09:00:00
       
      Como eu posso saber se a data de hoje é maior do que data e hora dessas 2 colunas?
    • Por thiagocola
      Eu peguei esse JSON no site do iFood e estou com dúvida de como converter esses 8 números em Time (HH:mm).
      Já tentei timestamp mas 8 dígitos é muito pequeno e já tentei ticks.
      Estou usando C#.
       
      "openingHours": [
                        {
                          "dayOfWeek": "MONDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "TUESDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "WEDNESDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "THURSDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "FRIDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "SATURDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "SUNDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        }
                      ]
       
      Estou achando que tenho que fazer algum tipo de multiplicação ou em última hipótese, esse valor é algum identificador interno do sistema deles.
       
      Tentei converter assim:
       
      DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
       
      var openingTime = dtDateTime.AddSeconds(13500000).ToLocalTime();
      // {06/06/1970 03:00:00}
       
      var closingTime = dtDateTime.AddSeconds(97140000).ToLocalTime();
      // {29/01/1973 05:20:00}
       
      Mas os valores que retornam não fazem sentido pra mim.
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.