對于ASP程序中日期型數據的格式問題探討
發表時間:2024-02-14 來源:明輝站整理相關軟件相關文章人氣:
[摘要]無論是MIS還是INTRANET(INTERNET)開發,日期型數據始終是一個頭痛的問題,因為對它的處理不象處理數字或字符串那樣 隨心所欲,而是差之毫厘,程序就不通。 在WEB-WEBSERVER-DATABASE三層結構的開發過程中,日期型數據的應用較為頻繁,而對不同的數據庫,日期格式的定義還不...
無論是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數據庫就能識別了。(出處:熱點網絡)