2017-02-03 70 views
0

我想在執行SELECT語句時僅從數據庫返回日期部分。 (下面的語句:Task.ST_Date)GridView上的日期格式,ASP.NET

SELECT Task.Details, Task.Pr_ID, EmTask.T_ID, Task.Ref_ID, Task.ST_Date 
FROM Task 
INNER JOIN EmTask ON Task.Ref_ID = EmTask.T_ID 
WHERE EmTask.Em_ID = 214432 
    AND Task.STATUS = 'WAITING' 
    AND Task.ST_Date BETWEEN CONVERT(VARCHAR(10), GETDATE(), 120) 
     AND CONVERT(VARCHAR(10), GETDATE() + 6, 120) 

這種說法的作品,但是當我在GridView中查看,此格式顯示:2017年2月3日12:00:00 AM enter image description here

有什麼方法可以將格式修改爲'yyyy-MM-dd'嗎?

*數據庫(MSSQL)內:日期數據類型,YYYY-MM-DD格式 enter image description here

+0

你必須提供數據類型= 「System.DateTime的」 和DataFormatString =「{0:YYYY -MM-dd}「和GridView自身的BoundField,如下面的答案所示。 – Hemal

回答

0
SELECT CONVERT(CHAR(10), convert(DATE, '2/3/2017 12:00:00 AM'), 126) 

輸出

DATE 
2017-02-03 

可以在查詢它自改變

SELECT TASK.DETAILS, TASK.PR_ID, EMTASK.T_ID, TASK.REF_ID,CONVERT(CHAR(10), CONVERT(DATE, TASK.ST_DATE), 126) 
FROM TASK 
INNER JOIN EMTASK ON TASK.REF_ID = EMTASK.T_ID 
WHERE EMTASK.EM_ID = 214432 
    AND TASK.STATUS = 'WAITING' 
    AND TASK.ST_DATE BETWEEN CONVERT(VARCHAR(10), GETDATE(), 120) 
     AND CONVERT(VARCHAR(10), GETDATE() + 6, 120) 
0

使用

SELECT CONVERT(VARCHAR(10), Task.ST_Date, 120) 

或C#與Eval

Text='<%# Eval("ST_Date", "{0:yyyy-MM-dd}") %>' 

<asp:boundfield datafield="ST_Date" dataformatstring="{0:yyyy-MM-dd}" /> 
0

可以格式化GridView控件欄,顯示日期在你想要的格式

<asp:BoundField DataField="YourDateField" HeaderText="SomeHeader" 
        DataFormatString="{0:yyyy-MM-dd}" /> 

或者,如果你有模板列

<asp:TemplateField HeaderText="Number"> 
    <ItemTemplate> 
     <asp:Label ID="txtDate" runat="server" Text='<%# Convert.ToDateTime(DataBinder.Eval("dateTime")).ToString("yyyy-MM-dd") %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 
0

您必須提供DataType="System.DateTime"DataFormatString="{0:yyyy-MM-dd}"以及GridView自身的BoundField,如下所示。

<asp:BoundField DataType="System.DateTime" DataField="YourDateField" HeaderText="SomeHeader" DataFormatString="{0:yyyy-MM-dd}" /> 
0

格式根據GridView的列所需的格式:

'/>

0
SELECT Task.Details, Task.Pr_ID, EmTask.T_ID, Task.Ref_ID,CONVERT(VARCHAR(10), Task.ST_Date , 120) as ST_Date 
FROM Task 
INNER JOIN EmTask ON Task.Ref_ID = EmTask.T_ID 
WHERE EmTask.Em_ID = 214432 
AND Task.STATUS = 'WAITING' 
AND Task.ST_Date BETWEEN CONVERT(VARCHAR(10), GETDATE(), 120) 
AND CONVERT(VARCHAR(10), GETDATE() + 6, 120)