私がネットで見つけた限り、声明
SELECT DATEPART(MONTH,columnName),DATEPART(YEAR,columnName)
それを行い、結果を2列にリストします。私が必要とするのは、データベース (MS SQL) からの日付をmm/yyyy のような形式で単一の列に表示することです。
1列に表示する方法はありますか?
私がネットで見つけた限り、声明
SELECT DATEPART(MONTH,columnName),DATEPART(YEAR,columnName)
それを行い、結果を2列にリストします。私が必要とするのは、データベース (MS SQL) からの日付をmm/yyyy のような形式で単一の列に表示することです。
1列に表示する方法はありますか?
明示的にを要求したのでGridView
、最後の場所で日時をフォーマットすることをお勧めします。したがって、.NETメソッドをString.Format
またはとして使用することをお勧めしますToString
:
String formatted = date.ToString("MM-yyyy");
またはBoundField
's DataFormatString
:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField DataFormatString="{0:MM-yyyy}" DataField="DateField" HeaderText="Date" ReadOnly="True" />
</Columns>
</asp:GridView>
SELECT RIGHT('0' + CONVERT(VARCHAR(2), MONTH(columnName)), 2)
+ '/' + CONVERT(CHAR(4), YEAR(columnName))
FROM dbo.tableName;
次のように言うこともできます。
SELECT RIGHT(CONVERT(CHAR(10), columnName, 103), 7)
FROM dbo.tableName;
SQL Server 2012では、次のように言うことができます。
SELECT FORMAT(columnName, 'MM/yyyy') FROM dbo.table;
以下のようにGridviewでフォーマットを設定できます
<asp:TemplateField >
<ItemTemplate>
<asp:Label Text='<%# Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "Created_Date ")).ToString("mm-yyyy")%>'
ID="lblCreatedDate" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>