Подсчет данных даты обработки [дубликат]

Если ваш файл не содержит никаких нулевых символов, используйте GNU sed. Это обнаружит появление третьего диапазона шаблонов. Однако, вы можете легко изменить это, чтобы получить любое событие, которое вы хотели бы.

sed -n '/^category/ { x; s/^/\x0/; /^\x0\{3\}$/ { x; :a; p; /done/q; n; ba }; x }' file.txt

Результаты:

category
3
r
d
done

Объяснение:

Отключить по умолчанию печать с помощью переключателя -n. Сопоставьте слово «категория» в начале строки. Поменяйте пространство шаблонов пространством удержания и добавьте нулевой символ в начало шаблона. В примере, если шаблон затем содержит два ведущих нулевых символа, вытащите шаблон из пространства пробелов. Теперь создайте цикл и распечатайте содержимое пространства шаблонов до тех пор, пока не будет сопоставлен последний шаблон. Когда этот последний шаблон найден, sed закроется. Если он не найден, sed продолжит читать следующую строку ввода и продолжить в своем цикле.

9
задан Sergey Berezovskiy 15 July 2013 в 14:29
поделиться

4 ответа

Вы не должны форсировать сравнение строк, когда то, с чем вы работаете, - данные Date / Time - как только вы принудительно сравниваете строки, вам вдруг приходится иметь дело с , как Строки форматируются.

Вместо этого есть что-то вроде:

var endDate = targetDate.AddDays(1);

toRet.Notification = Repositories
.portalDb.portal_notifications.OrderByDescending(p =>       p.id)
.FirstOrDefault(p => p.date >= targetDate && p.date < endDate);

(Предполагая, что targetDate - это какая-либо переменная DateTime, которая была использована для создания shortDateString в ваш код и уже является DateTime без значения времени)

4
ответ дан Damien_The_Unbeliever 21 August 2018 в 05:16
поделиться
  • 1
    Большое спасибо, Дэмиен, это сработало как шарм :) – Octavian Epure 15 July 2013 в 14:59
  • 2
    Я искал решение этой проблемы. В базе данных у меня могут быть такие даты, как 2012-06-06 20: 14: 50.367. Когда вы ищете записи, которые публикуются в 2012.06.06, мне нужно конвертировать дату, которую я ищу с 2012.06.06 по 2012.06.05 23:59, или пойти на подобный трюк. Я хотел избежать этого, удалив компонент времени каким-то образом, но не с даты поиска, а с дат в базе данных. Приветствует всех. действительно хороший портал, много полезной информации. – Mariusz 11 May 2015 в 10:37

Попробуйте это,

Вы также можете использовать код ниже.

Activity = String.Format("{0} {1}", String.Format("{0:dd-MMM-yyyy}", s.SLIDESHEETDATE), String.Format("{0:HH:mm}", s.ENDDATETIME))
-1
ответ дан Jeet Bhatt 21 August 2018 в 05:16
поделиться

ToShortDateString() метод, обычно используемый для работы только с датой и игнорированием временных меток.

Вы получите именно сегодня результат, используя следующий запрос.

Repositories.portalDb.portal_notifications.OrderByDescending(p =>       p.id)
        .FirstOrDefault(p => p.date.Date == DateTime.Now.Date);

Используя свойство Date структуры DateTime, вы можете просто получить запись только этой даты.

Примечание: Linq to Objects. Работает только в том случае, если вы можете (или иметь опцию) обходить метод ToShortDateString()

-3
ответ дан rana 21 August 2018 в 05:16
поделиться
  • 1
    p.date.Date выдаст исключение. Вы не можете сделать это в запросе LINQ to Entities. – IronMan84 16 December 2014 в 15:31
  • 2
    Ты не понял меня. date здесь свойство DateTime. вы можете изменить его с помощью CreatedDate. Сначала посмотрите на вопрос, пожалуйста ... – rana 17 December 2014 в 15:01
  • 3
    Я понимаю, что date является свойством DateTime. Я говорю, что вы не можете использовать date.Date в LINQ для Entities, так как он не знает, как перевести это в SQL. – IronMan84 17 December 2014 в 15:10
  • 4
    вы можете взять это p.CreatedDate.Date. надеюсь, что вы его получите :-) – rana 17 December 2014 в 15:11
  • 5
    Это нормально в LINQ для объектов, но not LINQ to Entities. – IronMan84 17 December 2014 в 15:20

Linq to Entities не может преобразовать метод ToSortDateString в код SQL. Вы не можете вызвать его на стороне сервера. Либо переместите фильтрацию на клиентскую сторону (которая будет передавать все данные с сервера на клиент), либо подумайте о том, чтобы использовать серверные функции , чтобы принять дату даты (вы должны передать объект DateTime вместо shortDateString):

EntityFunctions.TruncateTime(p.date) == dateWithoutTime
22
ответ дан Sergey Berezovskiy 21 August 2018 в 05:16
поделиться
  • 1
    Спасибо вам за быстрый ответ. После записи FirstOrDefault (p = & gt; (EntityFunctions.TuncateTime (p.date) == shortDateString) я получил ошибку Исключение типа «System.Data.EntityCommandExecutionException» произошло в System.Data.Entity.dll, но не было обработано в код пользователя Дополнительная информация: при выполнении определения команды произошла ошибка. Подробнее см. внутреннее исключение. Если есть обработчик для этого исключения, программа может быть безопасно продолжена. – Octavian Epure 15 July 2013 в 14:54
  • 2
    @OctavianEpure, как я сказал выше, вместо передачи строки shortDateString вы должны передать объект DateTime – Sergey Berezovskiy 15 July 2013 в 15:44
  • 3
    Используя EF6, мне пришлось использовать DbFunctions.TruncateTime() – Bpainter 9 December 2015 в 21:23
  • 4
    используя System.Data.Entity; .Выберите (a = & gt; DbFunctions.TruncateTime (a.MyDate)) – Mahesh 11 August 2016 в 17:16
Другие вопросы по тегам:

Похожие вопросы: