В настоящее время я работаю над отчетом, в котором PST (Pacifi c Standard Time) использовался в качестве основы для дат.
Я заметил, что иногда, когда я получаю данные в определенные c даты, отсутствуют столбцы.
Я обнаружил, что время базы данных / время сервера использовалось в формате UT C, а в отчете используется PST / местное время.
В разделе кода за кодом это дата по умолчанию что они используют, если не был выбран выбор.
if (!Page.IsPostBack)
{
FromTB.Text = DateTime.Today.ToLocalTime().ToString("dddd, MMMM dd, yyyy h:mm tt");
ToTB.Text = DateTime.Today.ToLocalTime().AddMinutes(1439).ToString("dddd, MMMM dd, yyyy h:mm tt");
}
Ниже приведен код спереди, используемый при получении данных в базе данных.
<asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:xxxxx %>' SelectCommand="select StudYear ,count(CAST(CreatedDate as DATE)) AS StudCount
from Student
where CreatedDate >= @CreatedDate and CreatedDate <= @CreatedDate2 and StudYear is not null
group by StudYear
order by StudYear"
<SelectParameters>
<asp:ControlParameter ControlID="FromTB" Name="CreatedDate" PropertyName="Text" Type="DateTime" />
<asp:ControlParameter ControlID="ToTB" Name="CreatedDate2" PropertyName="Text" Type="DateTime" />
</SelectParameters>
</asp:SqlDataSource>
Теперь, когда я сохраняю пример данных Cегодня. Вставленные данные были созданы в «2020-03-09 04: 00: 25.940» UT C, в то время как на странице отчета по умолчанию указывается дата PST «Воскресенье, 8 марта 2020 года, 12:00» в «Воскресенье, 8 марта, 2020 23:59 ".
Из-за этого я не могу получить вновь созданного пользователя.
Как преобразовать @CreatedDate
и @CreatedDate2
в SqlDataSource
в UT C, чтобы получить данные из базы данных? Или какой должен быть правильный подход для получения правильной информации?