1

現在、DropDownに次のSQLを入力しています。

SELECT REPORT_DATE FROM MY_TABLE

テーブルに格納されている値は次の形式dd-mon-yyyy(私の好みの形式)ですが、DropDownを埋めるテキストは、のように時間も表示されるという点で異なりますdd-mon-yyyy hh:mm:ss AM

これを解決するための最良の方法は何ですか?私はOracleSQLの機能を知っていTRUNCますTO_DATE。しかし、DropDownが入力された後、そこをループして文字列を切り捨てることもできると思います。次のコードを試しましたが、ランタイムエラーが返されます。

For Each i As ListItem In DropDown1.Items
        'Strip time here
        i.Text.ToString("dd-MMM-yyyy")
    Next

基本的に、DropDownをループして、テキストのみを「dd-MMM-yyyy」に一致するように変更したいだけです。どうすればこれを達成できますか?SQLまたはVB.NETを使用する必要がありますか?ベストプラクティスはありますか?

ありがとうございました!

4

5 に答える 5

2

あなたはこのSQL側をで行うことができます

SELECT to_char(REPORT_DATE, 'dd-mon-yyyy') report_date FROM MY_TABLE order by report_date;

ps "テーブルに格納されている値は、dd-mon-yyyyの形式です"。日付はそのように保存されるのではなく、内部で7バイトの数値として保存されます。選択時にそれらがどのように表示されるかは、NLS_DATE_FORMAT設定に完全に依存します。

于 2012-11-15T14:25:12.403 に答える
1

この文字列を使用して、Oracleからデータを取得します

SELECT TO_CHAR(REPORT_DATE,'DD-MON-YYYY') FROM MY_TABLE
于 2012-11-15T14:25:42.987 に答える
1

試す

i.Text = Convert.ToDateTime(i.Text).ToString("dd-MMM-yyyy")

.ToString("dd-MMM-yyyy")文字列の日付の書式設定には使用できません。これをDateTimeに変換する必要があります

また、試すことができます<asp:DropDownList DataTextFormatString="{0:dd-MMM-yyyy}" />

于 2012-11-15T14:27:14.667 に答える
1

データのタイプがDateTimeの場合、ドロップダウンでDataTextFormatStringプロパティを次のように指定するだけです。

<asp:dropdownlist DataTextFormatString ="{0:MM-dd-yyyy}" ... />

希望する形式で日付を表示するには、UIレイヤーが必要です。可能であれば、SQLステートメントで必要な形式に日付を変換するロジックを配置しないようにする必要があります。

于 2012-11-15T14:27:39.917 に答える
1

sqlに実行させるのではなく、DropDownListで日付をフォーマットすることをお勧めします。

DropDownListタグにDataTextFormatString="{0:dd / MM/yyyy}"を追加するだけです。

    <asp:DropDownList ID="DropDownList1" runat="server" 
        DataSourceID="SqlDataSource1" DataTextField="adddate" 
        DataTextFormatString="{0:dd/MM/yyyy}" DataValueField="adddate">
</asp:DropDownList>
于 2012-11-15T14:34:04.350 に答える