Проблема с порядковым номером C # в базе данных

#c# #sql #datetime

#c# #sql #дата и время

Вопрос:

У меня есть столбец в таблице базы данных, то есть идентификатор транзакции. Его тип данных — var char(50). Теперь я хочу сохранить строку, объединив текущую дату с сгенерированным порядковым номером.

Например 10/9/2016 , это дата, поэтому первая транзакция сохраняется как 10920161, а следующая — как 10920162 и так далее. Порядковый номер сбрасывается на 1 после каждого дня.

Как я могу это сделать?

Комментарии:

1. Для какой СУБД это нужно? Пожалуйста, добавьте тег, чтобы указать, используете ли вы mysql , postgresql , sql-server , oracle или db2 — или что-то совсем другое.

Ответ №1:

В SQL Server это может быть так просто, как:

 transactionId =  
CONCAT(DATEPART(MONTH, GETDATE()), 
       DATEPART(DAY, GETDATE()), 
       DATEPART(YEAR, GETDATE()),
       (SELECT COUNT(1) 
        FROM tableName 
        WHERE CONVERT(DATE, dateColumn) = CONVERT(DATE, getdate()))   1)
  

Получите количество транзакций за эту дату и добавьте к нему единицу. Сопоставьте это с форматированной строкой сегодняшней даты.

Если у вас уже есть 3 записи на сегодняшнюю дату, результатом будет:

 100920164
  

Запуск SQL-скрипки

Редактировать: EF предложил фрагмент:

 string dateStr = DateTime.Today.ToString("Mdyyyy");
DateTime todayMidnight = DateTime.Today;
DateTime tomorrowMidnight = DateTime.Today.AddDays(1);

obj.transactionId = dateStr   
                      context.tableName.Count(x=> x.dateColumn >= todayMidnight 
                      amp;amp; x.dateColumn < tomorrowMidnight)   1;
  

Комментарии:

1. Но я добавил дату и время транзакции в целом для каждой транзакции. Это не только дата, но и время.

2. @AzherAleem CONVERT(DATE, dateColumn) извлекает часть даты из столбца DateTime. Проверьте скрипку SQL, в ней есть DateTime столбец.

3. @AzherAleem Просто преобразуйте приведенный выше запрос в linq!

4. @AzherAleem Проверьте редактирование, это фрагмент, который показывает идею, поиграйте с ним в соответствии с вашими потребностями. Если вы не знакомы с Entity framework, просмотрите учебник, поскольку это выходит за рамки этого вопроса !

5. я просто запустил его и сделал транзакции.