日期:2014-05-17  浏览次数:20867 次

请教大家asp与SQL server的date 型数据的操作问题。
我有这样一个程序,是向数据库中分别插入年,月,日
这是添加页面:  
<select   name= "year ">
                <option   value= "2007 "> 2007 </option>
                <option   value= "2008 "> 2008 </option>
            </select>            
            年
            <select   name= "month ">
                <option   value= "01 "> 1 </option>
                <option   value= "02 "> 2 </option>
              ...
            </select>
            月
            <select   name= "date ">
                <option   value= "01 "> 1 </option>
                <option   value= "02 "> 2 </option>
                <option   value= "03 "> 3 </option>
                ...
            </select> 日
我是这样处理的:
<%

intYear=request.Form( "year ")
intMonth=request.Form( "month ")
intDate=request.Form( "date ")

ymd=intYear& "- "&intMonth& "- "&intDate

sql= "insert   into   [table]   (ymd)   values( ' "&ymd& " ') "
%>


在“修改页面”出了问题:
1.如何把年月日分别取出来赋给对应的 <select> .
2.用mid()函数时
    <%
    ymd=rs( "ymd "
    intYear=mid(ymd,1,4)
    intMonth=mid(ymd,6,2)
    intDate=mid(ymd,9,2)
    %>  
在数据库中的格式是这样的   2008-1-2而不是2008-01-02.
所以mid()函数就有时不好用。这个问题怎么解决?请大家帮忙!

------解决方案--------------------
土办法:写个函数判断下

MsgBox setNum(3) '调用示例

function setNum(p_strNum)
dim strRtn
If(CInt(p_strNum) <10) Then
strRtn= "0 "&CStr(p_strNum)
Else
strRtn=p_strNum
End If

setNum=strRtn
end function
------解决方案--------------------
把我写的函数加上,然后把你以上的代码改为即可:
<%
ymd=rs( "ymd "
intYear=mid(ymd,1,4)
intMonth=setNum(mid(ymd,6,2))
intDate=setNum(mid(ymd,9,2))
%>
------解决方案--------------------
select_year=year(rs( "ymd "))
select_month=month(rs( "ymd "))
select_day=day(rs( "ymd "))
------解决方案--------------------
呵呵,不好意思,没看清题目

接上面的再判断一下是否大于10不就好了,小于10的,前面加个“0”
------解决方案--------------------
ymd = split(rs( "ymd "), "- ")
intYear=ymd(0)
intMonth=ymd(1)
intDay=ymd(2)