iT邦幫忙

0

請教visual studio(使用VB)設計一個搜尋日期區間,如何轉為1040326民國格式?

我設計了一個可輸入日期起始範圍(如2015/03/01~2015/03/26),搜尋出資料正常,用Gridview方式顯示於網頁上,我在SqlDataSource元件的SelectQuery查詢中建立了如下語法:

SELECT * FROM [View.test] 
WHERE
(CONVERT (DateTime, 開始日期, 111) BETWEEN CONVERT (DateTime, @開始日期, 111) AND CONVERT (DateTime, @結束日期, 111))OR
(CONVERT (DateTime, 結束日期, 111) BETWEEN CONVERT (DateTime, @開始日期, 111) AND CONVERT (DateTime, @結束日期, 111))
ORDER BY 開始日期

但是搜尋出來網頁資料的開始日期與結束日期都是2015/XX/XX格式該如何轉換為--->"104XXXX 民國年月日的格式"?
謝謝!

看更多先前的討論...收起先前的討論...
SELECT 不要用*,
指定欄位,日期那的欄位去加工就好啦.
badboy01 iT邦新手 5 級 ‧ 2015-03-27 11:55:13 檢舉
我有指定欄位,在開始日期去做加工,執行後會顯示找不到欄位錯誤@@"
badboy01 iT邦新手 5 級 ‧ 2015-03-27 12:00:40 檢舉
錯誤訊息:
在選取的資料來源上找不到名稱為'開始日期'的欄位或屬性。
badboy01 iT邦新手 5 級 ‧ 2015-03-27 12:09:16 檢舉
可以了~是我原來型態是DateTime
外獅佬 iT邦大師 1 級 ‧ 2015-03-27 12:10:15 檢舉
你的SELECT 欄位清單裡頭,有『開始日期』嗎?不耐煩
外獅佬 iT邦大師 1 級 ‧ 2015-03-27 12:15:14 檢舉
老師有講....不要用精靈、不要用精靈、不要用精靈.....
不要用datasource、不要用datasource、不要用datasource....
badboy01 iT邦新手 5 級 ‧ 2015-03-27 12:33:10 檢舉
有開始日期,只是我where中的型態是DateTime
badboy01 iT邦新手 5 級 ‧ 2015-03-27 12:34:32 檢舉
我也很想不要用,但是對於程式我實在被打敗,只會很簡單的語法....在深入就...已經白頭髮一堆還是想不出來
badboy01 iT邦新手 5 級 ‧ 2015-03-27 12:45:29 檢舉
暈倒~~我用命令及參數編輯器執行正常,但是執行網頁卻發生:
'/'應用程式中發生伺服器錯誤
在選取的資料來源上找不到名稱為'開始日期'的欄位或屬性?怎麼會這樣....><"
badboy01 iT邦新手 5 級 ‧ 2015-03-27 12:58:24 檢舉
已經解決,謝謝!

1 個回答

4
wiseguy
iT邦超人 1 級 ‧ 2015-03-26 23:16:02
最佳解答

這不需要什麼高深的轉換吧?月日都一樣,連轉都不用轉。年就西元年減1911就是民國年了。

看更多先前的回應...收起先前的回應...
badboy01 iT邦新手 5 級 ‧ 2015-03-26 23:25:08 檢舉

請問-1911是要寫在哪一段@@"?

badboy01 iT邦新手 5 級 ‧ 2015-03-26 23:29:05 檢舉

因為下日期搜尋完,資料透過GridView顯示在網頁上,該怎麼加上這一段-1911?網頁上才會顯示104XXXX?謝謝!

外獅佬 iT邦大師 1 級 ‧ 2015-03-27 00:02:23 檢舉

大師請...
小弟實在不想回答了
落寞

外獅佬 iT邦大師 1 級 ‧ 2015-03-27 00:14:09 檢舉

給個小方向...GridView都會存在DataBinding的對吧....
在這上面去做處理就可以了....


不要用什麼新手之類的理由....
請嘗試自己去找出問題....
問到的答案,對你是沒有任何幫助的

badboy01 iT邦新手 5 級 ‧ 2015-03-27 00:54:00 檢舉

因為我是用工具內建精靈去做出來的,要再做變化小弟真的不懂><"

外獅佬 iT邦大師 1 級 ‧ 2015-03-27 09:17:42 檢舉

精靈拉出來的server control也是可以去細部修改的吧....

外獅佬 iT邦大師 1 級 ‧ 2015-03-27 09:21:35 檢舉
&lt;pre class="c" name="code">
SELECT RIGHT('0'+CAST(CONVERT(CHAR(8),[開始日期],112)-19110000 AS VARCHAR(8)),7) AS [民國日期]
badboy01 iT邦新手 5 級 ‧ 2015-03-27 09:48:09 檢舉

非常感謝,我有做出類似大大的這段語法,只是這段民國語法該放在哪個部分執行?目前我是抓檢視表中的開始日期格式2015XXXX,GridView顯示出來的開始日期也是2015XXXX。

badboy01 iT邦新手 5 級 ‧ 2015-03-27 09:49:53 檢舉

如果我先在檢視表中已經轉換為民國格式,就會發生一個問題,我在輸入日期範圍就會撈不到資料。

GJ iT邦研究生 5 級 ‧ 2015-03-27 10:43:00 檢舉

是用SQLDATASOURCE精靈?
在設定裡改成自訂語法去撈

badboy01 iT邦新手 5 級 ‧ 2015-03-27 10:54:07 檢舉

您好!我是用SQLDATASOURCE精靈@@"

外獅佬 iT邦大師 1 級 ‧ 2015-03-27 12:08:22 檢舉

落寞汗哭不耐煩嘆氣

badboy01 iT邦新手 5 級 ‧ 2015-03-27 12:08:39 檢舉

謝謝大家
找到問題了原來語法中我是用DateTime型態,換成字串varchar就可以,但如果我要用DateTime方式怎麼做呢?

外獅佬 iT邦大師 1 級 ‧ 2015-03-27 12:12:54 檢舉

暈這個更簡單

&lt;pre class="c" name="code">
SELECT DATEADD(year,-1911,[開始日期]) AS [開始日期] FROM [你的資料表]
badboy01 iT邦新手 5 級 ‧ 2015-03-27 12:57:47 檢舉

非常感謝大大這麼有耐心指導小弟我,前面大大提供的語法後來再試已經ok了,多虧了大大協助,小弟感激不盡,搞了半天,我一直弄錯方向.....

我要發表回答

立即登入回答