проверьте, что указанная дата присутствует между датой до даты - PullRequest
1 голос
/ 03 февраля 2012

Формат моего набора данных выглядит следующим образом

EMPNAME      FRMDATE      TODATE
ANU          01-10-2012   01-20-2012 
HARI         01-05-2012   02-05-2012

Теперь получите ввод через текстовое поле как 01-17-2012 для конкретного сотрудника.

У меня вопрос: как проверить, находится ли дата i / p между этими двумя столбцами (FRMDATE, TODATE) в наборе данных?

Ответы [ 3 ]

0 голосов
/ 08 февраля 2012

Я полагаю, что приведенный ниже метод поможет вам, для дополнительных материалов для чтения по сравнению дат посмотрите на эти две темы:

Использование linq или lambda для сравнения дат

Проверьте, попадает ли экземпляр datetime между двумя другими объектами datetime

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;


public bool IsDateInRange(string date, string employeeId)
{
    DateTime dateToCompare = DateTime.MinValue;
    bool isInRange = false;

    if (!String.IsNullOrEmpty(date) && !String.IsNullOrEmpty(employeeId) &&
        DateTime.TryParse(date, out dateToCompare))
    {
        DataTable table = new DataTable();
        string connectionString = WebConfigurationManager.ConnectionStrings["conn"].ConnectionString;
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            using (SqlCommand command = new SqlCommand())
            {
                command.Connection = connection;
                command.CommandText = "SELECT TOP 1 * FROM EmployeeDates WHERE EMPNAME = @EmpName";
                command.Parameters.AddWithValue("@EmpName", employeeId);
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                adapter.Fill(table);

                DateTime fomDate = (DateTime)table.Rows[0]["FRMDATE"];
                DateTime toDate = (DateTime)table.Rows[0]["TODATE"];

                //DateTime.Ticks converts a date into long
                //Now you can simply compare whether the input date falls between the required range
                if (dateToCompare.Ticks >= fomDate.Ticks && dateToCompare.Ticks <= toDate.Ticks)
                {
                    isInRange = true;
                }
                connection.Close();
            }
        }
    }
    return isInRange;
}
0 голосов
/ 17 апреля 2019

db.ClubPorsant.Where (p => p.CreateDate> = _FromDate && p.CreateDate <= _ToDate) .OrderByDescending (p => p.MablaghVariz) .ThenByDescending (p => p.Shomarehesab). ;

0 голосов
/ 03 февраля 2012

Попробуйте

1002 *
...