Sélectionnez les deux premiers caractères dans SQL Server CE
[RÉPONDRE]
Merci à tous! Le code pour résoudre le problème ci-dessous:
SELECT ID
FROM Schedule
WHERE (SUBSTRING(Time, 1, 2) = DATEPART(hh, GETDATE()))
Comment sélectionner les deux premiers caractères dans SQL Server CE?
Par exemple:
+-----+-----------+------------+
+ Day + Time + ID +
+-----+-----------+------------+
+ 1 + 08:00:00 + A1 +
+ 1 + 09:00:00 + A2 +
+ 1 + 09:30:00 + A3 +
+ 1 + 10:15:00 + A4 +
+-----+-----------+------------+
Time
colonne est une nvarchar
type.
Alors, je veux choisir le ID
qu'avec le temps basé sur le réel-heure, à l'instar de sélectionner uniquement les 08
partie de 08:00:00
. Comment puis-je le faire?
Votre colonne de Temps ne devrait pas être un type VARCHAR; il devrait être un type de TEMPS.
Ce moteur de base de données? MSFT, Oracle, DB2, tous utilisent différentes méthodes pour cela.
N'oubliez pas de reconnaître à la fois le SQL SGBD que vous utilisez et le nom de votre table (si seulement, de sorte que les réponses peuvent tous utiliser le même nom, il peut être un nom pour les besoins de la cause).
La réponse est entièrement fonction du produit (il y a une norme, mais de nombreuses bases de données n'est pas mise en œuvre). Veuillez indiquer quel langage SQL que vous utilisez.
Ce moteur de base de données? MSFT, Oracle, DB2, tous utilisent différentes méthodes pour cela.
N'oubliez pas de reconnaître à la fois le SQL SGBD que vous utilisez et le nom de votre table (si seulement, de sorte que les réponses peuvent tous utiliser le même nom, il peut être un nom pour les besoins de la cause).
La réponse est entièrement fonction du produit (il y a une norme, mais de nombreuses bases de données n'est pas mise en œuvre). Veuillez indiquer quel langage SQL que vous utilisez.
OriginalL'auteur mrjimoy_05 | 2012-05-08
Vous devez vous connecter pour publier un commentaire.
La sous-CHAÎNE est disponible dans les CE - http://msdn.microsoft.com/en-us/library/aa275646(SQL.80).aspx
OriginalL'auteur Chris Gessler
La Norme SQL méthode est donnée par le diagramme de syntaxe:
Par conséquent, dans cet exemple:
Certains SGBD (Oracle, et ceux émulation Oracle) fournir une fonction SUBSTR() au lieu de:
La
1
est le décalage de départ, en comptant à partir de 1, et la2
est la longueur (pas la finition de décalage, même si elles sont les mêmes pour cet exemple, et tous les autres où le début est 1).Il peut y avoir d'autres méthodes pour votre SGBD. Par exemple, avec Informix, vous pourriez écrire:
Cette fois cependant, les indices sont de démarrer et d'arrêter des positions.
Informix prend en charge tous les trois de ces. Je ne sais pas du tout d'autres SGBD qui utilise l'indice de notation.
The function is not recognized by SQL Server Compact. [Name of function = SUBSTR, Data type (if known) = ]
OK maintenant vous savez pourquoi il est important de préciser votre SGBD à l'avant.
Merci pour l'acceptation de ma réponse, mais la "accepter" appartient à Chris Gessler, car il vous donne la syntaxe dont vous avez besoin pour SQL Server, alors que le mien est plus de réponse générale. Veuillez unaccept cette réponse et accepter sa réponse à la place. (Je suis heureux d'accepter un vote si vous ne l'avez pas déjà donné, à moi, si.) Merci.
Oh, je suis tellement désolé. Parce que je pense que votre réponse est donné une explication détaillée sur le problème, j'ai donc décider d'accepter votre réponse. Mais, merci pour la suggestion. 🙂
OriginalL'auteur Jonathan Leffler
Entendez-vous comme cela?
The function is not recognized by SQL Server Compact. [Name of function = SUBSTR, Data type (if known) = ]
OriginalL'auteur Daniel A. White