0

我有一个问题,我的数据库服务器在美国,而我的用户在意大利。当它插入我的网站时,显示的是美国时间。我必须使用 getdate() 函数从数据库中检索日期。所以我将美国时间更改为意大利时间到我的数据库中。

谢谢

4

2 回答 2

1

根据CAST 和 CONVERT 上的 MSDN 文档,转换样式没有。105 代表意大利 - 所以试试:

SELECT CONVERT(VARCHAR(50), GETDATE(), 105)

但是在您的 SQL Server 数据库表中,它始终存储为DATETIME(我希望!),并且DATETIME没有任何格式或与之相关的任何内容 - 它只是一个 8 字节的数值。所以你绝对不应该对存储数据做任何事情——只有当你显示它(使用 aSELECT或其他东西)时,你必须确保以正确的格式输出它。

于 2012-08-17T10:17:55.260 回答
0

日期格式与数据库Collat​​ion相关。

设置数据库后更改排序规则并非易事。

以下是MSDN的说明:

Make sure you have all the information or scripts needed to re-create your user databases and all the objects in them.

Export all your data using a tool such as the bcp Utility. For more information, see Importing and Exporting Bulk Data.

Drop all the user databases.

Rebuild the master database specifying the new collation in the SQLCOLLATION property of the setup command. For example:

Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName 
/SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ] 
/SQLCOLLATION=CollationName

For more information, see Rebuilding System Databases.

Create all the databases and all the objects in them.

Import all your data.

否则,您需要将日期从数据库中取出后转换为所需的格式。如果您可能会显示多种日期格式,那么无论如何您都需要这样做。这通常在应用层而不是 SQL 中完成。

于 2012-08-17T10:15:32.393 回答