作者colorboy1769 (彩色男孩)
看板Visual_Basic
標題Re: [.NET] 時間存進資料庫
時間Sat Apr 26 15:05:25 2008
※ 引述《yauhh (姚呵呵)》之銘言:
: 看了半天沒看懂問題在哪裡,
: 原來是遇到錯誤就把錯誤擴大解讀的情況.
: 要跟你講的是:
: 1. 你所翻遍的SQL手冊所講的很夠了,
: 你真的只要知道datetime是一個有日期與時間格式的字串.
: 只要是字串,當然加個單引號; 不加單引號的情況不必測試,也不必討論.
其實我還沒有翻遍SQL的手冊...XD
重點在第二句 datetime 是一個日期與時間格式的"字串"
的確是我把問題想的太複雜了
我原本以為datetime是另外一種非數字非字串的格式
所以我一直在想說在commandText裡到底要怎麼寫指令....囧
: 2. SQL送出去得到錯誤,真的是因為欄位的資料型態設定為datetime嗎?
: 你能證明嗎? 或者是只因為遇到錯,做片面假設,然後碰到一個好像是證明的結果?
: 其實你可以先讀一下錯誤訊息是什麼,
: 還有把VB.Net的cmd.CommandText印出來,與純粹SQL Server操作time欄位
: 所能儲存的內容印出來比較一下,
: 看看有沒有解決問題的線索.
: SQL Server手冊明明說datetime是字串的樣子,若要說它不是字串,
: 也沒辦法解決什麼事情.
: 前面所提到的 toString 加上格式,以及用SQL自己的 getdate() 是對的.
應該說我不知道他是字串...
我剛睡醒吃完中飯還沒實驗啦
不過我依稀記得我昨天實驗完的結果
其中之一錯誤訊息為'從string 轉換成 datetime格式時發生錯誤'
該字串的內容我是用now.toString去存的
試過的有
now.toString
now.toString("yyyy/MM/dd HH:mm:ss")
now.toString("yyyyMMdd HHmmss")
會把斜線跟冒號去掉
是因為後來又有一個錯誤訊息跟這兩個有關
不過去掉還是會出錯 錯誤訊息也不同
待我實驗完抓圖PO上來
: 3. SQL Server儲存的datetime欄位本來就可以加減,
: 並不是因為今天你測它遇到錯誤,就完全沒有加減功能.
: 儲存在SQL Server的 datetime 字串,不只是可以讓VB.Net取出來做加減,
: 即使用SQL也可以做加減.
: 若儲存為自己的格式,則VB.Net或SQL都要寫一堆轉換程式,反而不方便.
對於加減的功能
我也是不知道可不可以 所以才來這邊提問啦
我也沒有測試他遇到錯誤 就說他沒有加減功能呀~"~
→ JacobTai:你主機的時間設定裡有"上午""下午"這些中文字...
在前面文章看到的這個推文
now抓到的主機時間設定有上午下午
可是如果去掉上午下午
不就變成自己的格式了嗎??
其實不管有沒有去掉 我存進去都會失敗啦 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.163.166.71
推 yauhh:時間的加減是一些函數而已,只要是合法的datetime就能用 04/26 15:13
→ colorboy1769:合法的datetime 如果以now來說的話 04/26 15:17
→ yauhh:另外含有上午/下午,不代表它就是合法日期字串 04/26 15:16
→ colorboy1769:是指now.toString這樣嗎?? 04/26 15:17
→ colorboy1769:我以為now.toString都沒改就是合法的說... 04/26 15:17
→ colorboy1769:這樣datetime所謂的合法 可以舉例給我看看嗎‧_‧? 04/26 15:18
推 yauhh:所謂合法是說,對datetime欄位餵一日期字串,它接受 04/26 21:51
→ yauhh:SQL Server與VB.Net是二套系統,不可混談 04/26 21:52