0

データセット (日付型) から取得したテキストをフォーマットして時間を表示しないようにする方法はありますか?

SQLクエリで日付をフォーマットして時間を表示しないようにしましたが、それを文字列に変更する必要があり、データ型を日付のままにする必要があります。

だから私はもうこれを使うことができません...

CONVERT(varchar(15),em.endDate,111) as endDate --> 2001/05/05

そして、これは機能しません

CONVERT(Date,em.endDate,111) --> 出力: 出力: 2001/5/5 12:00:00 AM

これが私のテンプレートです。

 <asp:TemplateField HeaderText="endDate" SortExpression="endDate">
     <ItemTemplate>
         <asp:Label ID="lblEndDate" runat="server" Text='<%# Bind("endDate") %>'></asp:Label>
     </ItemTemplate>
 </asp:TemplateField>

テンプレートを変更して日付の時刻を切り取る方法はありますか?

4

4 に答える 4

6

はい、使用できますToShortDateString

Text='<%# ((DateTime)Eval("endDate")).ToShortDateString() %>'

また

Text='<%#Eval("endDate","{0:d}")%>'

標準の日付と時刻の書式文字列

または使用しますRowDataBound( と仮定GridViewすると、イベントを伴う Repeater のような他の webdatabound コントロールでも機能しItemDataBoundます):

protected void Gridview1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRow row = ((DataRowView)e.Row.DataItem).Row; // you might use a different datasource, use the debugger if you are unsure
        Label lblEndDate = (Label)e.Row.FindControl("lblEndDate");
        lblEndDate.Text = row.Field<DateTime>("endDate").ToString("d");
    }
}
于 2013-04-26T12:39:00.253 に答える
0

使用できます

<asp:Label ID="lblEndDate" runat="server" Text='<%#Eval("EndDate","{0: dd- MMM - yyyy}")%>' />
于 2021-09-14T14:37:31.033 に答える
-1

文字列をDateTimeとして解析し、メソッドを使用しToStringて時刻なしでフォーマットできます。

必要な形式に応じて、次のようにします

myDateTime.ToString("d MMM yyy");
于 2013-04-26T12:40:19.647 に答える