AM / PM отображаются как A3 / P3 при попытке выбрать подстроку DateTime в SSRS?

#reporting-services #ssrs-tablix

#службы отчетов #ssrs-tablix

Вопрос:

Я пытаюсь получить только часть AM / PM из столбца DateTime в SSRS. Я пробовал оба =Right(Fields!Start_Time.Value,2) и =Format(Fields!Start_Time.Value,"tt") , и оба дают мне A3s и P3s. Я также пробовал =IIF(DatePart("hour",Fields!Start_Time.Value) < 12, "AM", "PM") , который просто отображал исходное DateTime, неформатированное. Что является причиной этого и как мне просто получить часть AM / PM?

Ответ №1:

Вы уверены, что ваше поле является ДАТОЙ / ВРЕМЕНЕМ, или оно просто выглядит как поле даты / времени?

Единственное, о чем я могу думать, это о том, что ваше поле на самом деле не является типом даты / времени, а просто выглядит как одно.

Попробуйте использовать CDATE для преобразования поля Времени начала в дату / время, которое можно отформатировать.

 =Format(CDATE(Fields!Start_Time.Value),"tt")
  

Обновить:
После просмотра ваших комментариев, я думаю, вы помещаете формулу в свойство FORMAT, а не в выражение. Исходя из того, как был написан вопрос, я предположил, что вы заполняете выражение текстового поля данными, отформатированными с помощью функции FORMAT. Если в текстовом поле установлено поле Время начала и вы хотите отформатировать с помощью свойства FORMAT, вы бы просто ввели формат (tt) и не использовали функцию FORMAT.

введите описание изображения здесь

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

1. @sleaf — а как насчет того, когда вы используете NOW? =FORMAT(CDATE(NOW), "tt") Вы пробовали использовать как Visual Studio, так и сервер отчетов? Если вы используете свойство FORMAT, а не выражение , просто используйте tt .

2. Когда я использую NOW, я получаю A3. Я не пробовал в Visual Studio, это для отчета SSRS. Я ничего не знаю об отчетах о данных в Visual Studio.

3. Извините, прочитайте комментарий, прежде чем я прочитаю ваше обновление вопроса. Добавление tt в свойство Format сделало свое дело! Спасибо.

Ответ №2:

Попробуйте: =IIF( Mid(Поля!Start_Time.Значение, 12,2) < 12, «AM», «PM»)

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

1. Попробовал, некоторые значения равны A3 / P3, а остальные — исходные неформатированные строки datetime.