SQL Server getdate() 到像 "2009-12-20"这样的字符串

标签 sql sql-server tsql

在 Microsoft SQL Server 2005 和 .NET 2.0 中,我想将当前日期转换为以下格式的字符串:“YYYY-MM-DD”。例如,2009 年 12 月 12 日将变为“2009-12-20”。我如何在 SQL 中执行此操作。

表定义中此 SQL 语句的上下文。换句话说,这是默认值。因此,当创建新记录时,当前日期的默认值以上述格式存储为字符串。

我想:
SELECT CONVERT(VARCHAR(10), GETDATE(), 102) AS [YYYY.MM.DD]

但 SQL 服务器不断将其转换为:
('SELECT CONVERT(VARCHAR(10), GETDATE(), 102) AS [YYYY.MM.DD]')

所以结果就是:

'SELECT CONVERT(VARCHAR(10), GETDATE(), 102) AS [YYYY.MM.DD]'

下面是 Visual Studio 服务器资源管理器、表、表定义、属性显示的屏幕截图:

alt text

这些包装器位正在自动添加并将其全部转换为文字字符串:(N' ')

这就是我尝试使用我之前使用的基本 DATETIME 以外的其他内容的原因:

这是我将所有内容连接到 ASP.NET GridView 并尝试通过网格 View 进行更新时遇到的错误:

“/”应用程序中的服务器错误。

正在使用的 SQL Server 版本不支持数据类型“日期”。
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.ArgumentException:正在使用的 SQL Server 版本不支持数据类型“日期”。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的来源和位置的信息。

堆栈跟踪:

[ArgumentException: 正在使用的 SQL Server 版本不支持数据类型“日期”。]

注意:我添加了一个相关问题来尝试解决 SQL Server in use does not support datatype 'date' error这样我就可以按照建议使用 DATETIME。

最佳答案

http://www.sql-server-helper.com/tips/date-formats.aspx

获取所有日期时间格式的列表。

关于SQL Server getdate() 到像 "2009-12-20"这样的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937101/

相关文章:

sql - 无法连接到 sql server : SQL server Instance failure. (System.Data)

sql-server - 游标循环内的表变量

sql - 我可以在 sql server 2008 profiler 中监控特定表的性能吗

SQL Server 2008 CTE 递归

c# - 将对象列表插入 SQL Server 表

mysql - laravel 5中如何将一个表的一个字段插入到另一个表中?

python - 根据记录数在SQL Server中将单列拆分为多列

sql-server - 如何使用 BCP 或 Sql Server Management Studio 从 Sql Server 中获取 BLOB 数据?

sql - 在 Postgres Server 中将正数据转换为负数据(整列)

sql - SQL Server-使用IF EXISTS一次删除多列