SET

10/07/2007 - 20:07 por Clara | Informe spam
Hola,
Estoy usando SQL Server 2005

Tengo algunas funciones escalares que devuelven el dia de la semana a partir
de DatePart(weekDay, date)
Pero el resultado depende de como esté definido SET DATEFIRST.

Yo no sé a priori como tendrá el servidor definido el SET DATEFIRST aunque
he leido que lo pued obtener a partir de @@DATEFIRST
Supongo que lo que debo hacer es en el cuerpo de la funcion algo asi
CREATE FUNCTION funcion

SET DATEFIRST 1 --lunes
...
...
...
SET DATEFIRST @@DATEFIRST
END

porque no me queda claro si @@DATEFIRST depende de la configuracion del
servidor ode la base de datos.
O puedo establecer de alguna forma solo una vez el @@DATEFIRST de la base de
datos?

Grácias

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
10/07/2007 - 22:18 | Informe spam
SET DATEFIRST se establece en tiempo de ejecución y vale durante la sesión.
Usalo para configurar el valor que deseas y consultalo usando @@DATEFIRST


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Clara" wrote:

Mostrar la cita
#2 Ronald Ramirez Moran
11/07/2007 - 01:53 | Informe spam
@@DATEFIRST obtiene el valor del primer dia de la semana en la sesion
actual. Su valor depende del lenguaje del usuario actual. En tu caso es
posible que estes utilizando un usuario con el parametro "Lenguaje"
configurado con el valor "us_english" (posiblemente), por lo que el valor de
su "DateFirst" es 7(domingo), si en su lugar fuera "spanish", el valor seria
1.

Ahora bien, existen muchas formas "directas" e "indirectas" de cambiar este
valor. Una de ellas es la que tu nos indicas anteriormente, la otra es
configurandole al usuario (o Login) el lenguaje adecuado (Ej. Español). Aqui
unos ejemplos:

ALTER LOGIN [repuser] WITH DEFAULT_LANGUAGE=[Español]

ALTER LOGIN [repuser] WITH DEFAULT_LANGUAGE=[English]

Si deseas cambiarlo de forma predeterminada a todos los usuarios nuevos de
tu servidor, puedes utilizar la siguiente sentencia:

(logins) nuevos:
sys.syslanguages
exec sp_Configure 'Language', '5'
GO
Reconfigure


Saludos Cordiales,


Ronald Ramirez (aka DlanorOk) | http://dlanorok.spaces.live.com



"Clara" wrote in message
news:
Mostrar la cita
#3 Gustavo Larriera (MVP)
11/07/2007 - 17:52 | Informe spam
Usa un stored procedure.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Clara" wrote:

Mostrar la cita
#4 Clara
11/07/2007 - 19:10 | Informe spam
hola,

El problema es que estas funciones son llamadas por campos calculados.
Bueno. veré qué hago.

grácias


"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
Mostrar la cita
#5 Federico A. Colli
11/07/2007 - 20:04 | Informe spam
Hola, y porque no haces que dicha función llame al SP?

Carpe diem, tempus fugit.
El hombre sabio no da las respuestas correctas, propone las preguntas
correctas (Claude Levi-Strauss).
La sabiduría no es un producto de la educación sino de toda una vida por
adquirirla (Albert Einstein).
El sabio puede sentarse en un hormiguero, pero sólo el necio se queda
sentado en él (Proverbio chino).

AUS Federico A. Colli
"Clara" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida