呵呵,恭喜本人灌破1000分大關,加貼熱點一貼---關於ASP程式中日期型資料的格式問題探討(轉貼)

來源:互聯網
上載者:User
程式|資料|問題   無論是MIS還是INTRANET(INTERNET)開發,日期型資料始終是一個頭痛的問題,因為對它的處理不象處理數字或字串那樣隨心所欲,而是差之毫釐,程式就不通。

  在WEB-WEBSERVER-DATABASE三層結構的開發過程中,日期型資料的應用較為頻繁,而對不同的資料庫,日期格式的定義還不一樣,所以在編輯網頁時首先應留心一下日期的格式如何定義,否則在進行資料庫提交和查詢操作時就會出錯。ASP(ACTIVE SERVER PAGES)是微軟提供的WEBSERVER -IIS4.0中的一個伺服器端的指令碼環境,當運行在伺服器端時,WEB伺服器完成指令碼的描述,回送到用戶端的是標準的HTML調用。ASP直接在HTML檔案中嵌入指令碼,使開發與維護工作變得簡單、快捷、靈活。開發工具用普通文字編輯器、FRONTPAGE 98等都可以。ASP的指令碼只在伺服器端解釋執行,一般使用者在瀏覽器端無法看到具體的指令碼,這對系統的安全性有極大的協助。目前這方面的應用環境多為WIN NT+SQL SERVER6+IIS4,筆者除了介紹這個環境下的日期格式之外,還介紹WIN NT+ORACLE7+IIS4的應用環境,通過兩者的比較,會加深這方面的瞭解,本文中用到的ASP指令碼語言是VB。

1 環境1

作業系統為NT4.0,WWW伺服器為WEB SERVER IIS4.0,資料庫為SQL SERVER6.5。

1.1 和資料來源的串連

ODBC資料來源的名字為name_of_odbc,SQL SERVER資料庫的使用者名稱為sql_server_dbname,密碼為sql_server_dbpasswd。

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "name_of_odbc","sql_server_dbname","sql_server_dbpasswd"


  

1.2 用陣列變數將12個月份儲存起來,
1.3 環境2中也要用到,
1.4 不
1.5 再重複
1.6 說明

Dim month1_12(12)

month1_12(1)="Jan"

month1_12(2)="Feb"

month1_12(3)="Mar"

month1_12(4)="Apr"

month1_12(5)="May"

month1_12(6)="Jun"

month1_12(7)="Jul"

month1_12(8)="Aug"

month1_12(9)="Sep"

month1_12(10)="Oct"

month1_12(11)="Nov"

month1_12(12)="Dec"


1.3 日期型變數的賦值

INI_TIMEVALUE = Date()

在FORM的輸出框中顯示的式為:1999-4-8

INI_TIMEVALUE = REQUEST(INI_TIMEVALUE)

def_timevalue = DAY(INI_TIMEVALUE) & "-" & month1_12(Month(INI_TIMEVALUE)) & "-" &Year(INI_TIMEVALUE)


def_timevalue的值是8-Apr-1999,在入庫時,SQL SERVER只識別這種格式的日期資料。

2 環境2

2.1 和資料來源的串連

ODBC資料來源的名字為name_of_odbc,ORACLE7資料庫的使用者名稱為oracle_dbname,密碼為oracle_dbpasswd。

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "name_of_odbc","oracle_dbname","oracle_dbpasswd"


2.2 日期型變數的賦值

INI_TIMEVALUE = Date()

在FORM的輸出框中顯示的式為:1999-4-8

INI_TIMEVALUE = REQUEST(INI_TIMEVALUE)

def_timevalue = DAY(INI_TIMEVALUE) & "-" & month1_12(Month(INI_TIMEVALUE)) & "-" &Year(INI_TIMEVALUE)


def_timevalue的值是8-Apr-1999,在入庫時,ORACLE7不識別這種格式的日期資料。而是識別8-Apr-99格式的資料,所以,在編程時可將指派陳述式調整過來:

def_timevalue = DAY(INI_TIMEVALUE) & "-" & month1_12(Month(INI_TIMEVALUE)) & "-" & mid(Year(INI_TIMEVALUE),3,2)

即將年度取後兩位,def_timevalue的值變為8-Apr-99,這樣,ORACLE7資料庫就能識別了



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.