Sql убрать время из даты

Поле DATE в базе данных имеет следующий формат:

Я хочу удалить время с даты и вернуть дату:

date sql reporting-services

9 ответов

46 GarethD [2013-01-11 20:25:00]

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

Во-вторых, после того, как у вас есть дата DO NOT, конвертируйте дату в varchar! Сохраните его в формате даты и используйте форматирование на стороне приложения, чтобы получить требуемый формат даты.

В зависимости от вашей СУБД существуют различные способы:

SQL-Server 2008, а затем:

SQL-Server 2005 и ранее

SQLite

Oracle

Postgresql

Если вам нужно использовать специальное форматирование культуры в своем отчете, вы можете либо явно указать формат текстового поля приема (например, dd/MM/yyyy), либо вы можете установить язык так, чтобы он отображал соответствующий формат даты для этот язык.

В любом случае это намного лучше обрабатывается вне SQL, поскольку преобразование в varchar в SQL будет влиять на любую сортировку, которую вы можете сделать в своем отчете.

Если вы не можете/не измените тип данных на DATETIME, а затем преобразуйте его в дату в SQL (например, CONVERT(DATETIME, yourField) ) перед отправкой в ​​службы отчетов и обработайте его, как описано выше.

176682 просмотра

9 ответа

200 Репутация автора

Поле DATE в базе данных имеет следующий формат:

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

Ответы (9)

плюса

25480 Репутация автора

В MySQL, по крайней мере, вы можете использовать DATE(theDate) .

8 плюса

213078 Репутация автора

просто использовать, ( в TSQL )

Автор: John Woo Размещён: 11.01.2013 02:10

Читайте также:  Error finding installer class matlab что делать

2 плюса

5313 Репутация автора

2 плюса

14696 Репутация автора

Для получения дополнительной информации обратитесь к: Форматы даты SQL Server

Live Demo

плюса

12583 Репутация автора

Вы можете попробовать следующее:

плюса

16359 Репутация автора

Используйте этот SQL:

Автор: bodi0 Размещён: 11.01.2013 02:13

3 плюса

357091 Репутация автора

Лично я бы вернул полное родное значение datetime и отформатировал бы его в коде клиента.

Таким образом, вы можете использовать настройку языкового стандарта пользователя, чтобы дать правильное значение этому пользователю.

«11/12» неоднозначно. Это:

  • 12 ноября
  • 11 декабря

Автор: gbn Размещён: 11.01.2013 02:22

60 плюса

55441 Репутация автора

Во-первых, если ваши даты в формате varchar, измените это, сохраняйте даты как даты, это избавит вас от многих головных болей, и это то, что лучше делать раньше, чем позже. Проблема будет только ухудшаться.

Во-вторых, если у вас есть дата, НЕ конвертируйте дату в varchar! Сохраните его в формате даты и используйте форматирование на стороне приложения, чтобы получить необходимый формат даты.

Есть разные способы сделать это в зависимости от вашей СУБД:

SQL-Server 2008 и более поздние версии:

SQL-Server 2005 и ранее

SQLite

оракул

Postgresql

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

В любом случае это намного лучше обрабатывается за пределами SQL, поскольку преобразование в varchar в SQL повлияет на любую сортировку, которую вы можете выполнить в своем отчете.

Если вы не можете / не будете изменять тип данных на DATETIME, тогда все равно преобразуйте его в дату в SQL (например CONVERT(DATETIME, yourField) ) перед отправкой в ​​службы отчетов и обработайте, как описано выше.

Читайте также:  Http qoo by 3tpq

Автор: GarethD Размещён: 11.01.2013 05:25

3 плюса

91 Репутация автора

Я нашел этот метод весьма полезным. Однако он преобразует ваш формат даты / времени в просто дату, но тем не менее он выполняет работу, для которой он мне нужен. (Мне просто нужно было отобразить дату в отчете, время не имело значения).

(Имейте в виду, я стажер;))

Я нашел более простой способ сделать это, ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ SSRS.

На самом деле проще изменить свойства текстового поля, где поле расположено в отчете. Щелкните правой кнопкой мыши поле> Число> Дата и выберите соответствующий формат!

Поле DATE в базе данных имеет следующий формат:

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

9 ответов

Во-первых, если ваши даты в формате varchar, измените это, сохраняет даты как даты . Это избавит вас от многих головных болей, и лучше всего это делать раньше, чем позже. Проблема будет только усугубляться.

Во-вторых, когда у вас есть дата, НЕ конвертируйте дату в varchar! Сохраните его в формате даты и используйте форматирование на стороне приложения, чтобы получить требуемый формат даты.

Существуют различные способы сделать это в зависимости от вашей СУБД:

SQL-Server 2008 и позже:

SQL-Server 2005 и ранее

SQLite

Oracle

Postgresql

Если вам нужно использовать форматирование, специфичное для культуры, в своем отчете, вы можете явно указать формат получаемого текстового поля (например, дд /мм /гггг) или установить язык так, чтобы он отображал соответствующий формат даты для этот язык.

В любом случае это намного лучше обрабатывается вне SQL, поскольку преобразование в varchar в SQL повлияет на любую сортировку, которую вы можете выполнить в своем отчете.

Читайте также:  Brother hl 2132r driver

Если вы не можете /не будете изменять тип данных на DATETIME, все равно преобразуйте его в дату в SQL (например, CONVERT(DATETIME, yourField) ) отправлять в службы отчетов и обрабатывать их, как описано выше.

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *