Можно использовать эти CONVERT
функция для возврата только даты. См. ссылку (ссылки) ниже:
Управление Датой и временем в SQL Server 2000
, синтаксис для использования функции преобразования:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
К сожалению, это не поддерживается API boost :: interprocess как есть. Однако есть несколько способов реализовать это:
Если вы используете платформу POSIX с поддержкой pthread_mutexattr_setrobust_np, отредактируйте boost / interprocess / sync / posix / thread_helpers.hpp и boost / interprocess / sync / posix / interprocess_mutex.hpp использовать надежные мьютексы и каким-то образом обрабатывать возврат EOWNERDEAD из pthread_mutex_lock.
Если вы используете другую платформу, вы можете отредактировать boost / interprocess / sync / emulation / interprocess_mutex.hpp для использования счетчика генерации с заблокированным флагом в нижнем бите. Затем вы можете создать протокол возврата, который установит флаг в слове блокировки, чтобы указать ожидающее восстановление, а затем выполнить сравнение и обмен после тайм-аута, чтобы проверить, что то же поколение все еще находится в слове блокировки, и если да, замените его на заблокированное значение следующего поколения.
Если вы работаете в Windows, другим хорошим вариантом будет использование собственных мьютексных объектов; в любом случае они, вероятно, будут более эффективными, чем ожидание при занятости.
Вы также можете пересмотреть использование протокола с общей памятью - почему бы вместо этого не использовать сетевой протокол?