简单的语法问题
1。oracle 中用到的to_char 、to_date在sqlserver中不能用,如果我规定一个系统时间格式为(“yyyy-mm-dd”)的形式应该如何来写。
2。select ddm||flm||bm as id from my_table 此语句在sqlserver中出现错误提示。在oracle中却正常。
问题点数:20、回复次数:3Top
1 楼kylike(学无止境,直到那一天)回复于 2005-06-27 16:20:55 得分 10
你的第1个问题:
在SQLSERVER 中可设置用于“输入” datetime 或 smalldatetime 数据的
日期部分(月/日/年)的顺序。 注意是输入的格式,而非设置输出的格式
----------------源自 MSHelp 文档---------
SET DATEFORMAT mdy
GO
DECLARE @datevar datetime
SET @datevar = '12/31/98'
SELECT @datevar
GO
SET DATEFORMAT ydm
GO
DECLARE @datevar datetime
SET @datevar = '98/31/12'
SELECT @datevar
GO
SET DATEFORMAT ymd
GO
DECLARE @datevar datetime
SET @datevar = '98/12/31'
SELECT @datevar
GO
-------------------------------------------------------------------
你的第2个问题
select ddm||flm||bm as id from my_table
在SQL中不支持“||”的写法。
select ddm+flm+bm as id from my_table -- 则可以受支持的。
Top
2 楼nm3000(苹果2004)回复于 2005-06-27 16:41:40 得分 10
Public Function change_date(ByVal ls_source As String) As String
Dim ls_year As String = ""
Dim ls_month As String = ""
Dim ls_day As String = ""
If ls_source = Nothing Or ls_source = "" Then
Return ""
Else
If System.Convert.ToDateTime(ls_source).Year.ToString() = "1900" Then
Return ""
Else
ls_year = System.Convert.ToDateTime(ls_source).Year.ToString()
ls_month = System.Convert.ToDateTime(ls_source).Month.ToString()
ls_day = System.Convert.ToDateTime(ls_source).Day.ToString()
If Integer.Parse(ls_month) < 10 Then
ls_month = "0" + ls_month
End If
If Integer.Parse(ls_day) < 10 Then
ls_day = "0" + ls_day
End If
Return ls_year + "-" + ls_month + "-" + ls_day
End If
End If
End Function
改变日期格式
change_date(列名)Top
3 楼hglhyy(為人民币服务!)回复于 2005-06-27 16:47:05 得分 0
建议你把的日期型字段 转为字符型好了!
Top




