Поле 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
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) ) перед отправкой в службы отчетов и обработайте, как описано выше.
Автор: 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 повлияет на любую сортировку, которую вы можете выполнить в своем отчете.
Если вы не можете /не будете изменять тип данных на DATETIME, все равно преобразуйте его в дату в SQL (например, CONVERT(DATETIME, yourField) ) отправлять в службы отчетов и обрабатывать их, как описано выше.