我的日期时间字段如下所示:
2011-02-07 06:51:32.000 (yyyy-mm-dd)
用户输入采用以下格式:
02-07-2011 (only the date)
这应该转换为:
02-07-2011 00:00:00.000
我试过CONVERT:
CONVERT(VARCHAR(10),myDateTimeField,113)
但这仅适用于日期值而非日期时间。
请帮忙!
我使用了以下功能:
CONVERT(datetime,Cast(myDateInput AS Char (10)), 105)
感谢您的所有答案!我为改变我的问题而道歉!
答案 0 :(得分:2)
选择转换(varchar,myDateTimeField,105)...
来源:http://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/和http://msdn.microsoft.com/en-us/library/aa226054(v=sql.80).aspx
答案 1 :(得分:0)
Crystal有一个名为Date
的函数;它需要YYYY,MM,DD或日期时间作为参数并返回日期。
所以我建议你制作一个公式,将日期更改为日期时间并显示它。
date( mytable.mydatetimevar )
然后,您应该可以使用普通日期字段格式选项格式化此日期。
另一种方法是使用Crystal的DatePart函数提取月,年,日,然后根据需要进行重组。
答案 2 :(得分:0)
试试这个:
select DATEPART(mm, myDateTimeField) + '-' +
DATEPART(dd, myDateTimeField) + '-' +
DATEPART(year, myDateTimeField)
答案 3 :(得分:0)
我不认为DATETIME
字段带有时间信息令人惊讶;)
事实上,您不应该改变字段本身,因为您将失去数据库引擎在此字段中使用日期/时间相关功能的能力。 (使用的格式是ISO 8601,可以帮助引擎轻松识别单个部件)
正如其他人所说,在您SELECT
语句或应用程序中检索日期时,最好格式化日期。 (有关这方面的更多提示,我们确实需要有关sql server和您正在使用的应用语言的信息)。
答案 4 :(得分:0)
尝试使用样式ID转换 - 110
CONVERT(VARCHAR(10),myDateTimeField,110)
结果将是:02-07-2011