2012-03-16 133 views
0

如何只插入datedate列?只插入日期到表SQL Server

我试着用cast('11-DEC-1999' as DATE)

但我得到的错误:

Conversion failed when converting date and/or time from character string.

+0

您正在使用哪个版本的SQL Server日期? – Murtaza 2012-03-17 04:32:13

+0

此表达式在我的服务器(SQL Server 2008 R2)上没有生成任何错误。可能与区域设置有关? – 2012-03-17 15:20:16

回答

0

CONVERT(日期,'11-DEC-1999' 的),应该帮助。

1

只要使用'2012-02-14',应该没问题。不需要转换。

这里是可以接受的阿尔法格式列表:从here

Apr[il] [15][,] 1996 

Apr[il] 15[,] [19]96 

Apr[il] 1996 [15] 

[15] Apr[il][,] 1996 

15 Apr[il][,][19]96 

15 [19]96 apr[il] 

[15] 1996 apr[il] 

1996 APR[IL] [15] 

1996 [15] APR[IL] 

撕开你可以指定为完整的月份名称每月指定日期的数据。例如,以当前语言指定的April或月份的月份缩写;逗号是可选的,大写字母被忽略。

以下是使用字母日期格式的一些准则:

用单引号(')的日期和时间数据。对于英语以外的语言,请使用N'

括号内的字符是可选的。

如果只指定年份的后两位数字,则小于两位数年份截止配置选项值的最后两位数字的值与截止年份位于同一个世纪。大于或等于此选项值的值在截止年份之前的世纪中。例如,如果两位数年份截止值为2050(默认值),则25将被解释为2025,而50则被解释为1950.为避免含糊不清,请使用四位数年份。

如果缺少一天,则提供该月的第一天。

当您按字母顺序指定月份时,不会应用SET DATEFORMAT会话设置。

+0

但如何与'DEC'一起使用? – Saint 2012-03-16 23:06:14

+0

修改了包含Dec/December类型格式的答案。 – 2012-03-17 04:23:06

1

指定月份int和后取从中

 DateTime dt=new DateTime(11,12,1999).Date;