【发布时间】:2010-07-30 09:35:16
【问题描述】:
考虑这个简单的用户定义函数:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER FUNCTION [dbo].[ufn_GetFirstDayOfMonth] ( @pInputDate DATETIME )
RETURNS DATETIME
BEGIN
RETURN CAST(CAST(YEAR(@pInputDate) AS VARCHAR(4)) + '/' +
CAST(MONTH(@pInputDate) AS VARCHAR(2)) + '/01' AS DATETIME)
END
运行时使用:
SELECT [Business].[dbo].[ufn_GetFirstDayOfMonth] ('03/13/15')
返回,2015-03-01 00:00:00.000。太棒了,正是我想要的。现在假设我想扭转局面并使用日期格式 mdy 并执行以下功能:
set dateformat mdy
SELECT [Business].[dbo].[ufn_GetFirstDayOfMonth] ('03/13/15')
为什么会返回 2015-03-01 00:00:00.000(和上面一样)?
【问题讨论】:
标签: sql sql-server sql-server-2005 datetime